如何在asp.net中使用Windows身份validation获取用户名?

我想使用Windows身份validation获取用户名

实际上我实现了“以不同用户身份登录”,单击此按钮时,Windows安全性将出现在那里,我们可以提供凭据。

在那个时候,如果我提供一些其他凭证,它只采用当前用户名。 如何从Windows安全性获取给定的凭据用户名?

在IIS中的主机应用程序,然后禁用匿名身份validation并启用Windows身份validation。

web.config中:

                

的.cs

在这里,我总是得到默认的用户名

 string fullName = Request.ServerVariables["LOGON_USER"]; 

有任何想法吗? 提前致谢

您可以通过以下方式在Windows身份validation下获取用户的WindowsIdentity对象:

 WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity; 

然后你可以获得有关用户身份信息的信息。

请注意,您需要为这些代码提供HttpContext。

这应该工作:

 User.Identity.Name 

Identity返回IPrincipal

这是Microsoft 文档的链接。

这取决于应用程序的配置以及IIS,因为下面链接中的这位绅士已正确解释。 请参阅下面的文章

http://richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net/

我认为,由于以下代码,您没有获得新的凭据

 string fullName = Request.ServerVariables["LOGON_USER"]; 

您可以尝试自定义登录页面

你得到这样的用户名:

 var userName = HttpContext.Current.Request.LogonUserIdentity?.Name;