请求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"/>
我这样固定它
- 去IIS
- select你的项目
- 点击“身份validation”
- 点击“匿名authentication”>编辑>select“应用程序池标识”而不是“特定用户”。
- 完成。
更新了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(); }