我正在运行 MVC3 和一个 Windows 身份验证 Web 应用程序。当我部署到 IIS6 时,它运行良好,直到我遇到需要身份验证的页面。然后,当我在我的应用程序中没有任何痕迹并且我的 web.config 配置为 windows auth 时,它会自动重定向到 /Account/Login。
有任何想法吗?
这是我的整个 web.config 文件: http: //pastie.org/1568510
我正在运行 MVC3 和一个 Windows 身份验证 Web 应用程序。当我部署到 IIS6 时,它运行良好,直到我遇到需要身份验证的页面。然后,当我在我的应用程序中没有任何痕迹并且我的 web.config 配置为 windows auth 时,它会自动重定向到 /Account/Login。
有任何想法吗?
这是我的整个 web.config 文件: http: //pastie.org/1568510
检查您是否在应用程序的 bin 目录中部署了WebMatrix.Data.dll和/或WebMatrix.WebData.dll 。如果它们在那里(并且您知道自己不使用它们),请尝试删除它们并访问需要身份验证的页面。
在 RTM 中尝试添加<appSettings>到Web.config:
<add key="enableSimpleMembership" value="false" />
尝试通过将其添加到您的 appSettings (web.config) 来覆盖 WebMatrix.dll 默认登录网址:
<add key="loginUrl" value="~/Account/LogOn"/>
WebMatrix.dll 将登录 URL 设置为 /Account/Login,如果此密钥未在配置文件中设置...它适用于我。
在 RTM 中尝试添加到 Web.config 中:
<add key="enableSimpleMembership" value="false" />
上面的帖子有效。+1在添加可部署依赖项之前添加此密钥。
我在 MVC4 项目中遇到了同样的问题,只有我的项目完全禁用了匿名身份验证,因此始终需要 Windows 身份验证。
我的 bin 文件夹中没有 WebMatrix.*,将 autoFormsAuthentication 和 enableSimpleMembership 键添加到 appSettings 并没有为我做这件事。
相反,我不得不注释掉以下内容:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
并将其替换为:
<authentication mode="Windows" />
那成功了。
我使用的是 nopCommerce 2.65 并遇到了这个问题。
我没有在 bin 文件夹中部署任何 WebMatrix.Data.dll 或 WebMatrix.WebData.dll,但添加
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false" />
在 web.config 中解决了它。
另一种覆盖“MVC + IIS 7 的 login.aspx url 重定向问题”的方法...通过将其添加到您的 appSettings (web.config) 中:
<authentication mode="Forms">
<!--<forms loginUrl="~/Account/Login" timeout="2880" />-->
<forms loginUrl="~/Home" timeout="2880" />
</authentication>
...这为我解决了问题
我以这种方式修复了它
1)转到 IIS
2)选择您的项目
3)单击“身份验证”
4)单击“匿名身份验证”>“编辑”>选择“应用程序池身份”而不是“特定用户”。
5) 完成。
确保 IIS 中的所有身份验证设置都是正确的。
对我来说,重定向到 /Account/Login 的应用程序在启用匿名身份验证的站点内运行。在站点中禁用此功能并为应用程序启用它(连同 Windows 身份验证)后,一切正常。
您还可以转到服务器上的 IIS 并进入身份验证模式并禁用表单身份验证。
这让我在演示中摸不着头脑。尴尬。
我知道这是一个超级老帖子。但是我只是在阅读了从 MVC 4 升级到 MVC 5 的教程后遇到了这个问题。所以我把它扔了,以防万一其他人犯了我犯的错误。我的问题最终是我在升级我的参考资料时不小心将“Microsoft.AspNet.WebPages.WebData”添加到我的项目中。
运行“Uninstall-Package Microsoft.AspNet.WebPages.WebData”将我的身份验证恢复到以前的荣耀。
在 4.6 框架的 MVC 中,这是通过两种方式完成的,第一种是在 Web.Config 中,如您所料,第二种是在项目文件中完成,用于配置 IIS Express:
<PropertyGroup>
..
<IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
<IISExpressWindowsAuthentication>disabled</IISExpressWindowsAuthentication>
</Property
开发时将禁用 Windows 身份验证并使用匿名,但不用于部署应用程序。