繁体   English   中英

"在 ASP.NET 中获取域用户 ID"

[英]Get Domain User ID in ASP.NET

我有一个 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”。

通过执行以下操作,我能够使其工作:

  1. 打开IIS并导航到我的网站。
  2. 在IIS部分下,双击“身份验证”。
  3. 从那里,禁用“匿名身份验证”和“表单身份验证”。
  4. 启用“Windows身份验证”。

从那里我能够识别用户ID /名称并继续我的编码。 我不得不重做一点,但这非常值得。 谢谢你的建议!

在 ASP.NET Core .NET 6 中,我使用

环境.用户名;

\/\/ 或 \/\/ 以下仅适用于 Windows 平台

System.Security.Principal.WindowsIdentity.GetCurrent().Name ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM