HttpContext.Current.User.Identity.Name为null

时间:2014-08-01 12:32:04

标签: asp.net asp.net-mvc httpcontext

我正在尝试使用HttpContext.Current.User.Identity.Name从内部网络获取用户的Windows登录详细信息,但它是空的。

我尝试在Web.Config中更改身份验证模式,但没有任何乐趣:

  <system.web>
    <authentication mode="Windows" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

我也听说在项目属性中你应该启用Windows身份验证并禁用匿名身份验证,如下所示:

enter image description here

然后我得到一个重新直接循环,并在Chrome中显示“此网页有重定向循环”消息。

我还检查过我的计算机上安装了Windows身份验证:

enter image description here

有关如何解决此问题的任何想法吗?

非常感谢

2 个答案:

答案 0 :(得分:7)

当我有:

<authentication mode="Windows"/>
<identity impersonate="true/>
在web.config中的

我得到当前用户:

string currUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

答案 1 :(得分:0)

将我的项目网络服务器设置更改为Local IIS而不是IIS Express可以解决我的问题,但我不确定为什么会出现这种情况,如果有人有这方面的其他信息。

  • 右键单击项目
  • 单击“属性”
  • 转到网络标签
  • 在“服务器”部分,从下拉列表中选择Local IIS