IIS上的ASP.NET MVC3和Windows身份validation会一直redirect到/ Account / Login

我正在运行MVC3和一个Windows身份validation的Web应用程序。 当我部署到IIS6时,它运行良好,直到我点击需要身份validation的页面。 然后,当我在应用程序中没有跟踪时,它会自动redirect到/帐户/login,并且我的web.configconfiguration为Windowsvalidation。

有任何想法吗?

这是我的整个web.config文件: http : //pastie.org/1568510

检查您的应用程序的bin目录中是否部署了WebMatrix.Data.dll和/或WebMatrix.WebData.dll 。 如果他们在那里(你知道你不使用它们),那么尝试删除它们并访问需要validation的页面。

在RTM中尝试添加到Web.config <appSettings>

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

(Thx 在ASP.NET MVC 3 Beta中专门使用Windows身份validation的问题 。)

不知道你是否仍然有问题,但尝试添加

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

到appSettings下的web.config。 根据这里和这里 ,这应该解决你的问题。

尝试覆盖WebMatrix.dll默认loginurl通过添加到您的appSettings(web.config):

 <add key="loginUrl" value="~/Account/LogOn"/> 

WebMatrix.dll将loginURL设置为/帐户/login,如果这个密钥没有在configuration文件中设置…它适用于我。

在RTM中尝试添加到Web.config中:

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

以上post的作品。 +1 添加可部署的依赖项之前添加此项。

我在我的MVC4项目有同样的问题,只有我的项目完全禁用匿名身份validation,所以总是需要Windows身份validation。

我没有WebMatrix。*在我的bin文件夹中,添加autoFormsAuthentication和enableSimpleMembership键到appSettings没有为我做。

相反,我不得不评论如下:

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

并将其replace为:

 <authentication mode="Windows" /> 

那就是诀窍。

我使用nopCommerce 2.65,并有这个问题。

我没有任何WebMatrix.Data.dll或WebMatrix.WebData.dll部署在bin文件夹中,但添加

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

在web.config中解决了它。

另一种重写“login.aspx urlredirect问题与MVC + IIS 7”的方法…通过添加到您的appSettings(web.config):

 <authentication mode="Forms"> <!--<forms loginUrl="~/Account/Login" timeout="2880" />--> <forms loginUrl="~/Home" timeout="2880" /> </authentication> 

…这为我解决了这个问题

确保IIS中的所有身份validation设置都是正确的。

对于我来说,redirect到/帐户/login的应用程序在启用匿名身份validation的站点内运行。 在网站中禁用此function并为应用程序启用后(与Windows身份validation一起)就可以了。

您也可以转到服务器上的IIS,进入身份validation模式并禁用表单身份validation。

这让我在演示中挠头。 尴尬。

我这样固定它
1)去IIS
2)select你的项目
3)点击“authentication”
4)点击“匿名authentication”>编辑>select“应用程序池标识”而不是“特定用户”。
5)完成。

我知道这是一个超级老post。 但是我刚刚通过从MVC 4升级到MVC 5的教程后遇到了这个问题。所以我把它扔了,以防其他人犯我犯的错误。 我的问题最终是因为我偶然在我的项目中添加了“Microsoft.AspNet.WebPages.WebData”,同时升级了我的引用。

运行“卸载软件包Microsoft.AspNet.WebPages.WebData”恢复我的身份validation,以前的荣耀。

在4.6框架的MVC中,这是通过两种方式完成的,第一种是在Web.Config中,如您所期望的那样,第二种是在项目文件中完成的,用于configurationIIS Express:

 <PropertyGroup> .. <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication> <IISExpressWindowsAuthentication>disabled</IISExpressWindowsAuthentication> </Property 

将禁用Windows身份validation并在开发时使用匿名,但不用于部署应用程序。