[英]Getting Client side Windows User ID in asp.net, for LDAP single sign on
我们有一个现有的Web表单,允许使用表单身份验证,该身份验证要求用户键入id和pw才能登录到系统。 客户端要求该程序仅从登录的Windows用户名中获取用户名,这是指用于登录计算机而不是网页的用户名。
我曾经尝试获取用户名的方法:
System.Environment.UserName;
HttpContext.Current.User.Identity.Name;
Context.User.Identity.Name;
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Page.User.Identity.Name;
Windows身份验证(WA),表单身份验证(FA),基本身份验证(BA),匿名身份验证(AA),ASP.NET模拟(AI)已在多个不同的对中禁用。 我发现最多的建议是启用(WA),禁用(AA),启用(AI),但无济于事。 唯一可能影响上述代码的是我的测试中的AI。
启用(AI)会给我:NT AUTHORITY \\ IUSR
禁用(AI)给我:IIS APPPOOL \\ ASP.NET V4.0集成
而我想要得到的是MyDomain \\ MyUserName
我尝试从另一台未托管该页面但仍在同一域中的计算机访问该页面,它给了我相同的输出。 这使我怀疑这些代码只给了我在服务器上运行进程的用户,而不是客户端的Windows用户。
我的问题是,是否有人知道如何获取登录到域的人的用户名?
*其他信息:我正在域中使用超级用户帐户,并提供了管理员帐户和密码,以某种方式以管理员身份运行Visual Studio,如果这会影响到任何事情的话。
您必须在IIS中启用Windows身份验证,并禁用其他身份验证方法。
并确保在web.config
中将身份验证模式设置为“ Windows”。
<authentication mode="Windows"/>
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.