请求redirect到/ Account / Login?ReturnUrl =%2f,因为MVC 3安装在服务器上

我们有一个内部的ASP.NET Webforms应用程序,运行在Windows 2008 / IIS7服务器上,运行良好,直到我们安装了MVC3。

现在任何请求redirect到/帐户/login?ReturnUrl =%2f。

该网站是Webforms而不是MVC。 由于它是仅内部网站,因此我们为根文件夹启用了Windows身份validation。

在同一台服务器上有几个其他网站没有受到此问题的影响,但是这是根文件夹设置为Windows身份validation的唯一网站。

我通过将以下行添加到我的web.config文件的AppSettings部分来解决问题:

<add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/> 

我这样固定它

  1. 去IIS
  2. select你的项目
  3. 点击“身份validation”
  4. 点击“匿名authentication”>编辑>select“应用程序池标识”而不是“特定用户”。
  5. 完成。

更新了MVC 4的答案,从此页面大量借用了ASP.NET MVC问题,并configuration了表单身份validation部分 (并在这两个页面上进行了回答)

 <appSettings> ... <add key="PreserveLoginUrl" value="true" /> </appSettings> ... <authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" timeout="43200" /> <!--43,200 in minutes - 30 days--> </authentication> 

只要删除

  <authorization> <deny users="?"/> </authorization> 

从你的web.config文件

那为我做了

一个解决这个选项defaultURL添加我的应用程序的path

 <forms loginUrl="/Users/Login" protection="All" timeout="2880" name="001WVCookie" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="/Home/Index" cookieless="UseCookies" enableCrossAppRedirects="false" /> 

它解决了IIS请求自动redirect到默认页面( default.aspx或login页面)

通过将以下行添加到我的web.config文件的AppSettings部分:

 <add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/> 

我们向现有的IIS站点添加了一些WCF SOAP相关的东西,并导致了这个问题,该站点拒绝遵守web.configauthenticationredirect。

我们尝试了各种修补程序,没有成功,并发明了一个将新奇怪URL映射回多年来一直使用的工具:

 <urlMappings enabled="true"> <add mappedUrl="~/loginout.aspx" url="~/Account/Login"/> </urlMappings> 

这工作,但它是丑陋的。 最终我们将其追溯到一段时间之前由Visual Studio添加的web.config项:

 <add key="webpages:Enabled" value="true" /> 

由于我们无法确切地做出什么,我们拿出来,立即解决了我们的问题。

打开web.config,然后更改

 <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication> 

 <authentication mode="Forms"> <forms loginUrl="~/Login.aspx" timeout="2880" /> </authentication> 

更改为〜/ Default.aspx

我的解决scheme是添加标签

[使用AllowAnonymous]

通过我的GET请求注册页面。 它最初是从我所要的代码中丢失的!

用这个:

 RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new System.Web.Mvc.AuthorizeAttribute()); } 

4小时后,尝试一切… Windows 2008 R2的文件在Window Explorer中是绿色的。 这些文件被标记为来自zip文件的encryption和拱起。 取消选中文件属性中的这些选项为我解决了问题。

如果什么都行不通,那么在你的Web.Config文件的system.web属性中添加authentication mode =“Windows”。 希望它能为你工作。

Drezus – 你为我解决了。 非常感谢。

在你的AccountController中,login应该是这样的:

  [AllowAnonymous] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); }