我在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 - 内部服务器错误
无法访问请求的页面,因为页面的相关配置数据无效。
任何帮助人员?
答案 0 :(得分:17)
如果问题是Visual Studio在打开解决方案时更新了applicationhost.config中的两个设置,您可以通过在解决方案资源管理器中选择项目来解决它,查看属性窗格(可用当您未处于调试模式时)并设置为已启用两项匿名身份验证和 Windows身份验证。
顺便说一句,在我的情况下,生成401.2错误的参数只是匿名身份验证,您可能想要尝试保留默认的Windows身份验证。
(PS,你的帖子解决了401.2的问题,真的为我的一天节省了很多,谢谢!)
答案 1 :(得分:2)
您可以通过更改
来编辑IIS身份验证模式\ My Documents \ IISExpress \ config \ applicationhost.config中的iis属性
visual studio中的项目属性
第二个选项是你的答案。
屏幕截图的完整答案已经在stackoverflow上:https://stackoverflow.com/a/7168308/2988788
答案 2 :(得分:0)
您通常可以使用您的Windows帐户,您的域名是您的电脑名称和Windows帐户/密码。例如,pc-name \ username也将IISUSR添加为您的安全设置帐户。