我有一个ASP.NET应用程序,它在机器1上运行。
当用户从机器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"/>
如何获取访问网页的用户的用户名,我该怎么办?
答案 0 :(得分:4)
您必须将IIS中的身份验证设置为Windows身份验证(并可能禁用所有其他身份验证):
转到: