下面是web.config
<authentication mode="Windows" />
<authorization>
<allow users="*"/>
<deny users="?" />
</authorization>
但是当我在visual studio中调试时,HttpContext.Current.User.IsAuthenticated为false并且HttpContext.Current.User.Identity.Name保持为空
为什么会这样?
当我将web.config更改为此时,401错误显示...
<authorization>
<deny users="?" />
</authorization>
答案 0 :(得分:4)
刚刚通过更改“使用本地IIS Web服务器”在“属性”页面中使用Visual Studio开发服务器来解决问题
答案 1 :(得分:1)
您的配置允许匿名用户。您只能获得经过身份验证的用户的用户名。
<authorization>
<!-- Deny anonymous users -->
<deny users="?" />
<!-- Allow everyone else (authenticated users) -->
<allow users="*" />
</authorization>
确保在IIS中安装并激活了Windows身份验证组件。
答案 2 :(得分:0)
由于从Visual Studio 2013开始“ Visual Studio开发服务器”不再可用,我们将需要选择IIS Express,并确保已在applicationhost.config
文件中启用Windows身份验证
<windowsAuthentication enabled="true">
除了按照@sisve的答案描述配置IIS Express之外。