我想使用Windows身份验证获取用户名
实际上,我实现了“登录为不同的用户”,当点击这个按钮Windows安全将出现在那里,我们可以给予凭据。
在这段时间里,如果我给予一些其他的凭据,它只取当前的用户名。如何从windows安全中获得给定的凭据用户名?
IIS中的主机应用程序,然后禁用匿名身份验证并启用Windows身份验证。
网站配置:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<identity impersonate="true"/>
<authorization>
<allow users="*"/>
<deny users="*"/>
</authorization>
</system.web>
<system.webServer>
<directoryBrowse enabled="true" />
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webserver>
.cs
在这里,我总是获得默认用户名
string fullName = Request.ServerVariables["LOGON_USER"];
有什么想法吗?
8条答案
按热度按时间k75qkfdt1#
这些是您可以访问的不同变量及其值,具体取决于IIS配置。
**方案1:**IIS中的匿名身份验证(模拟关闭)。
**方案2:**IIS中的Windows身份验证,模拟关闭。
**方案3:**IIS中的匿名身份验证,模拟
**方案4:**IIS中的Windows身份验证,模拟
图例
SERVER1\ASPNET
:服务器上正在运行的进程的标识。SERVER1\IUSR_SERVER1
:IIS中定义的匿名访客用户。MYDOMAIN\USER1
:远程客户端的用户。Source
sshcrbum2#
您可以通过以下方式在Windows身份验证下获取用户的WindowsIdentity对象:
然后你就可以得到用户的信息,比如identity.Name。
请注意,这些代码需要HttpContext。
t5fffqht3#
这应该行得通:
Identity
返回一个这里是指向Microsoft documentation的链接。
wlzqhblo4#
这取决于应用程序的配置以及IIS,正如这位先生在下面的链接中正确地解释的那样。
http://richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net/
ippsafx75#
您可以从
WindowsIdentity
读取Name
:mwkjh3gx6#
我认为由于下面的代码,您不会获得新的凭据
您可以尝试自定义登录页面。
9w11ddsr7#
用户名如下所示:
btqmn9zl8#
在您的视图页面/ _Layout.cshtml中声明以下代码: