【问题标题】:Getting username in an mvc application with no authentication and anonymous authentication enabled in IIS在 IIS 中未启用身份验证和匿名身份验证的 mvc 应用程序中获取用户名
【发布时间】:2016-01-05 14:50:22
【问题描述】:

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

谢谢,

苏迪普·阿罗拉

【问题讨论】:

  • 您希望在这里使用什么用户名?当前用户的windows登录用户id?
  • @Shetty:是的,绝对是的。
  • @Shetty:但我不想启用表单身份验证。是否可以在没有任何身份验证的情况下实现。非常感谢您的帮助。

标签: c# asp.net-mvc authentication iis anonymous-access


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    不需要任何身份验证就可以实现吗

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2020-12-21
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多