59

我正在运行 MVC3 和一个 Windows 身份验证 Web 应用程序。当我部署到 IIS6 时,它运行良好,直到我遇到需要身份验证的页面。然后,当我在我的应用程序中没有任何痕迹并且我的 web.config 配置为 windows auth 时,它会自动重定向到 /Account/Login。

有任何想法吗?

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

4

13 回答 13

152

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

于 2011-03-11T13:51:30.660 回答
29

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

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

(感谢在 ASP.NET MVC 3 Beta 中专门使用 Windows 身份验证的问题。)

于 2011-08-18T21:43:17.393 回答
14

不确定您是否仍然有问题,但请尝试添加

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

到 appSettings 下的 web.config。根据herehere,那应该可以解决您的问题。

于 2011-03-24T23:44:46.347 回答
9

尝试通过将其添加到您的 appSettings (web.config) 来覆盖 WebMatrix.dll 默认登录网址:

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

WebMatrix.dll 将登录 URL 设置为 /Account/Login,如果此密钥未在配置文件中设置...它适用于我。

于 2012-01-08T17:11:56.137 回答
3

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

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

上面的帖子有效。+1在添加可部署依赖项之前添加此密钥。

于 2011-09-17T16:36:04.187 回答
3

我在 MVC4 项目中遇到了同样的问题,只有我的项目完全禁用了匿名身份验证,因此始终需要 Windows 身份验证。

我的 bin 文件夹中没有 WebMatrix.*,将 autoFormsAuthentication 和 enableSimpleMembership 键添加到 appSettings 并没有为我做这件事。

相反,我不得不注释掉以下内容:

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

并将其替换为:

<authentication mode="Windows" />

那成功了。

于 2014-02-05T14:21:46.113 回答
2

我使用的是 nopCommerce 2.65 并遇到了这个问题。

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

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

在 web.config 中解决了它。

于 2013-07-10T15:57:07.903 回答
1

另一种覆盖“MVC + IIS 7 的 login.aspx url 重定向问题”的方法...通过将其添加到您的 appSettings (web.config) 中:

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

...这为我解决了问题

于 2013-09-12T22:13:33.700 回答
1

我以这种方式修复了它
1)转到 IIS
2)选择您的项目
3)单击“身份验证”
4)单击“匿名身​​份验证”>“编辑”>选择“应用程序池身份”而不是“特定用户”。
5) 完成。

于 2014-05-19T08:07:20.360 回答
1

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

对我来说,重定向到 /Account/Login 的应用程序在启用匿名身份验证的站点内运行。在站点中禁用此功能并为应用程序启用它(连同 Windows 身份验证)后,一切正常。

于 2014-08-20T14:13:51.870 回答
0

您还可以转到服务器上的 IIS 并进入身份验证模式并禁用表单身份验证。

这让我在演示中摸不着头脑。尴尬。

于 2014-02-10T15:42:34.913 回答
0

我知道这是一个超级老帖子。但是我只是在阅读了从 MVC 4 升级到 MVC 5 的教程后遇到了这个问题。所以我把它扔了,以防万一其他人犯了我犯的错误。我的问题最终是我在升级我的参考资料时不小心将“Microsoft.AspNet.WebPages.WebData”添加到我的项目中。

运行“Uninstall-Package Microsoft.AspNet.WebPages.WebData”将我的身份验证恢复到以前的荣耀。

于 2014-11-19T21:41:29.813 回答
0

在 4.6 框架的 MVC 中,这是通过两种方式完成的,第一种是在 Web.Config 中,如您所料,第二种是在项目文件中完成,用于配置 IIS Express:

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

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

于 2015-12-15T10:04:49.250 回答