如何在ASP.NET中查找当前登录用户的名称?

5
我有一个运行在机器1上的ASP.NET应用程序。
当用户从机器2访问该页面时,我想找到他或她在机器2上登录的用户名。
我尝试使用以下方法:
- Request.LogonUserIdentity.Name - Page.User.Identity.Name - ((WindowsIdentity)HttpContext.Current.User.Identity).Name - ((WindowsIdentity)HttpContext.Current.User.Identity).User - Request.LogonUserIdentity.User 但是都没有起作用。
Request.LogonUserIdentity.Name返回NT AUTHORITY\IUSR,Request.LogonUserIdentity.User返回S-1-5-17,其他所有方法都返回空字符串。NT AUTHORITY\IUSR是运行Web应用程序的计算机上的用户,而不是客户端计算机上的用户。
在web.config中,我禁用了模拟。
<authentication mode="Windows"/>
<identity impersonate="false"/>

如何获取访问网页的用户名称?


4
IIS是否配置了身份验证?听起来似乎仍启用了匿名访问。 - D Stanley
我该如何找到它?它是否在“web.config”中指定? - Glory to Russia
1
不,这是一个服务器端的设置。您可以在此处阅读更多信息:http://technet.microsoft.com/en-us/library/cc733010(v=ws.10).aspx - D Stanley
1
其实,我只是想感谢你提出那个问题,因为我几天后需要它的答案。 - Ramy M. Mousa
1个回答

5

您需要在IIS中设置认证方式为Windows身份验证(并可能禁用其他所有认证方式):

enter image description here

按以下步骤操作:

  • 进入网站
  • IIS - 认证
  • 根据您的需求进行编辑

我有同样的问题,但是当我启用Windows身份验证并禁用所有其他身份验证时,会收到401(Challenge)响应。 - jcmordan
也许您的浏览器没有正确发送身份验证信息,或者您不属于该域。 - Patrick Hofman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接