在visual studio中调试时,HttpContext.Current.User.Identity.Name为空

时间:2014-01-24 01:46:15

标签: asp.net visual-studio authentication visual-studio-2012

下面是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>

3 个答案:

答案 0 :(得分:4)

刚刚通过更改“使用本地IIS Web服务器”在“属性”页面中使用Visual Studio开发服务器来解决问题 enter image description here

答案 1 :(得分:1)

您的配置允许匿名用户。您只能获得经过身份验证的用户的用户名。

<authorization>
    <!-- Deny anonymous users -->
    <deny users="?" />

    <!-- Allow everyone else (authenticated users) -->
    <allow users="*" />
</authorization>

确保在IIS中安装并激活了Windows身份验证组件。

enter image description here enter image description here

答案 2 :(得分:0)

由于从Visual Studio 2013开始“ Visual Studio开发服务器”不再可用,我们将需要选择IIS Express,并确保已在applicationhost.config文件中启用Windows身份验证

<windowsAuthentication enabled="true">

除了按照@sisve的答案描述配置IIS Express之外。