每次在VS2012中打开解决方案时,IIS express applicationhost.config安全性都会重置

And*_*nna 10 security windows-authentication visual-studio-2012

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

[authentication mode="Forms"]
  [forms loginUrl="~/Account/Login" timeout="2880" /]
[/authentication]

它使用默认的IIS 8.0 Express.

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

HTTP错误401.2 - 未经授权

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

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

[system.webServer]
  [security]
    [authentication]
      [anonymousAuthentication enabled="true" /]
      [windowsAuthentication enabled="true" /]
    [/authentication]
  [/security]
[/system.webServer]

但每次我在VS中重新打开解决方案时,密钥都会重置为false.

如何永久设置为true?

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

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

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

有帮助的人吗?

edd*_*ddo 17

如果问题是Visual Studio在打开解决方案时更新了applicationhost.config中的两个设置,则可以通过在解决方案资源管理器中选择Project来查看它,查看" 属性"窗格(当您处于调试模式时可用)和设置为启用两项匿名身份验证Windows身份验证.

顺便说一句,在我的情况下,生成401.2错误的参数只是匿名身份验证,您可能希望尝试保留默认的Windows身份验证.

(PS,你的帖子解决了401.2的问题,真的救了我的一天,非常感谢它!)

  • 我无法相信他们现在隐藏了(默认折叠)属性窗口中的设置.当然我们知道设计视图的侧面属性窗口,但从来不知道项目和解决方案,也许只是项目项目.这似乎抓住了很多人.我们希望Web服务器的所有设置都位于主属性屏幕的"Web"选项卡上(而不是属性工具窗口).现在必须通过Visual Studio 2012更加了解这一点.在我看来,这是一个糟糕的设计变更; 这里设置的一半,那里设置的一半......无论如何,谢谢! (2认同)