1

我一直在尝试读取浏览我的 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 应用程序的用户名吗?

谢谢,

苏迪普·阿罗拉

4

2 回答 2

0

这样做是不可能的,因为您当前的设置不要求任何最终用户凭据。

您至少必须切换到表单身份验证或 Windows 身份验证。

于 2015-10-08T07:29:52.257 回答
0

可以在没有任何身份验证的情况下实现吗

不。为什么浏览器会将访问者的用户名发送到他们访问的每个网站?

于 2015-10-08T08:27:01.087 回答