我一直在尝试读取浏览我的 MVC 应用程序的用户的用户名。该应用程序没有任何身份验证,并且托管在禁用 Windows 身份验证和启用匿名身份验证的 IIS 中。
现在,我想确保当用户浏览应用程序时,他/她看不到任何用户凭据弹出窗口。所以,我禁用了 Windows 身份验证并启用了匿名身份验证。
但我无法读取用户名。我尝试了以下所有方法:
User.Identity.Name
System.Security.Principal.WindowsIdentity.GetCurrent().Name
System.Environment.UserName
但由于我的用户没有经过身份验证,我没有得到正确的结果。
到目前为止,我所取得的成就是我能够在以下代码的帮助下读取用户的机器名称:
我正在使用以下内容读取 IP 地址:
Request.UserHostName
然后,使用以下命令获取机器名称:
IPAddress myIP = IPAddress.Parse(IP);
IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);
List<string> compName = GetIPHost.HostName.ToString().Split('.').ToList();
return compName.First();
我尝试搜索答案并得到以下信息:
https://stackoverflow.com/a/1688220/2429125
但是,即使这对我也没有帮助。有人可以指点我阅读没有匿名访问身份验证的 MVC 应用程序的用户名吗?
谢谢,
苏迪普·阿罗拉