在ASP.NET中获取域用户ID
本文关键字:用户 ID 获取 ASP NET | 更新日期: 2023-09-27 18:29:09
我有一个ASP.NET应用程序,其中一名员工登录到Windows,然后他们必须从一长串姓名中选择自己的姓名并登录到该应用程序。
我想做的是,一旦员工打开应用程序,就会从下拉框中选择他们的姓名。
我相信,如果我能在页面加载时获得Windows用户Id,我就可以让我的代码根据登录的Windows用户来选择用户。
问题是,如何获取当前登录C#Asp.net的Windows用户Id?任何想法。
试试这个:-
System.Web.HttpContext.Current.User.Identity.Name
还可以查看此论坛。
更新:-
1) 请检查您是否已在IIS 中禁用匿名模式
2) 还要检查您是否已将应用程序设置为验证用户详细信息,如下所示:-
<authentication mode="Windows"/>
<authorization>
<allow users="*"/>
</authorization>
或者像这样:-
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
3) 您可以在"控制面板"中配置IIS,以便您的站点(或机器)使用Windows身份验证并拒绝匿名访问
我遇到了一个相关的问题,我的本地版本将WindowsIdentity。GetCurrent().Name。ToString()值识别为我的Windows帐户名,但当我通过服务器访问网站时,它总是"DefaultAppPool"。
我能够通过以下操作来实现这一点:
- 打开IIS并导航到我的网站
- 在IIS部分下,双击"身份验证"
- 从那里,禁用"匿名身份验证"answers"表单身份验证"
- 启用"Windows身份验证"
从那里我能够识别用户id/名称并继续进行编码。我不得不返工一点,但这很值得。谢谢你的建议!
在ASP.NET Core.NET 6中,我使用
Environment.UserName;
//或//以下仅适用于Windows平台
System.Security.Principal.WindowsIdentity。GetCurrent().Name;