10

我在 VS2012 中开发了一个使用表单身份验证的 MVC4 应用程序。

[认证方式=“表格”]
  [forms loginUrl="~/Account/Login" timeout="2880" /]
[/验证]

它使用默认的 IIS 8.0 Express。

每次我从 VS 中打开并运行应用程序时,都会收到以下消息:

HTTP 错误 401.2 - 未经授权

由于身份验证标头无效,您无权查看此页面。

我发现要避免出现此屏幕,我必须将 [User Documents]\IISExpress\config 文件夹中 applicationhost.config 文件的 Security 部分的anonymousAuthentication 和 windowsAuthentication 键更改为“true”:

[system.web服务器]
  [安全]
    [验证]
      [启用匿名身份验证=“真”/]
      [windowsAuthentication启用=“真”/]
    [/验证]
  [/安全]
[/system.web服务器]

但是每次我在 VS 中重新打开解决方案时,键都会重置为 false。

我怎样才能使然后永久设置为真?

我尝试将这些密钥放在应用程序的 web.config 中,但随后收到消息:

HTTP 错误 500.19 - 内部服务器错误

无法访问请求的页面,因为该页面的相关配置数据无效。

有帮助的人吗?

4

3 回答 3

17

如果问题是 Visual Studio 在打开解决方案时更新了 applicationhost.config 中的两个设置,您可以通过在解决方案资源管理器中选择项目,查看属性窗格(未处于调试模式时可用)和设置为Enabled两项Anonymous AuthenticationWindows Authentication

顺便说一句,在我的情况下,生成 401.2 错误的参数只是Anonymous Authentication,您可能想尝试为 Windows Authentication 保留默认值。

(PS,你的帖子解决了 401.2 的问题,真的为我节省了很多时间,非常感谢!)

于 2012-08-24T12:46:29.997 回答
2

您可以通过更改来编辑 IIS 身份验证模式

  1. \My Documents\IISExpress\config\applicationhost.config 中的 iis 属性

  2. Visual Studio 中的项目属性

第二个选项是你的答案。

带有屏幕截图的完整答案已经在 stackoverflow 上:https ://stackoverflow.com/a/7168308/2988788

于 2013-11-15T14:00:53.700 回答
0

您通常可以使用您的 Windows 帐户,您的域是您的电脑名称和您的 Windows 帐户/密码。例如 pc-name\username 也将 IISUSR 添加为您的安全设置中的帐户。

于 2014-12-12T03:04:54.093 回答