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

时间:2012-08-20 17:22:51

标签: security visual-studio-2012 windows-authentication

我在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 - 内部服务器错误

     

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

任何帮助人员?

3 个答案:

答案 0 :(得分:17)

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

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

(PS,你的帖子解决了401.2的问题,真的为我的一天节省了很多,谢谢!)

答案 1 :(得分:2)

您可以通过更改

来编辑IIS身份验证模式
  1. \ My Documents \ IISExpress \ config \ applicationhost.config中的iis属性

  2. visual studio中的项目属性

  3. 第二个选项是你的答案。

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

答案 2 :(得分:0)

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