Asp.net 为什么HttpContext.Current.User.Identity.Name返回空白

Asp.net 为什么HttpContext.Current.User.Identity.Name返回空白,asp.net,authentication,authorization,Asp.net,Authentication,Authorization,我创建了一个网站。这是一个内部站点。这是一个.NET4.0网站。我想使用HttpContext.Current.User.Identity.Name获取浏览网站的人的用户名。没有登录页,因为它是内部的。我不确定我错过了什么。我的网络配置中是否需要以下内容: <authentication mode="Windows"></authentication> <identity impersonate="true"/> <authorization>

我创建了一个网站。这是一个内部站点。这是一个.NET4.0网站。我想使用HttpContext.Current.User.Identity.Name获取浏览网站的人的用户名。没有登录页,因为它是内部的。我不确定我错过了什么。我的网络配置中是否需要以下内容:

<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
  <allow users="?"/>
</authorization>

这是:

  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />


是的,你确实需要,至少

<authentication mode="Windows"></authentication>

如果您使用的是集成的Windows Auth,则需要部件

之后,您应该能够获取登录者的用户名

不,您不需要:

<validation validateIntegratedModeConfiguration="false" />

未经验证时,它将显示为空白。您还可以通过执行以下操作来验证这一点:

HttpContext.Current.User.Identity.IsAuthenticated

在IIS中检查您的身份验证级别,是否也设置为启用windows身份验证?

在IIS中,为您的web应用程序禁用匿名访问并启用集成的windows安全性。

在IIS中,转到站点\默认网站\[您的网站]


选择身份验证选项并禁用匿名身份验证。

在我的例子中,从
web.config
帮助中删除


我在
部分也有

我将我的网络配置更改为只有,但仍然没有用户名。从我的电脑浏览网站时,我希望看到我的用户名(与我一起登录的用户)。不确定我遗漏了什么。您是否在IIS中的应用程序级别配置了集成windows身份验证?如果您希望这样做,您不会得到想要在不强制某种身份验证的情况下保持匿名的用户登录名?