如何在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;