3

我有一个 ASP.NET 应用程序,员工登录到 Windows,然后他们必须从一长串姓名中选择他们的姓名并登录到应用程序。

我想要做的是,一旦员工打开应用程序,它就会从下拉框中选择他们的名字。

我相信如果我可以在页面加载时获得 Windows 用户 ID,我可以让我的代码根据登录的 Windows 用户选择用户。

问题是。如何获取当前在 C# Asp.net 中登录的 Windows 用户 ID?有任何想法吗。

4

3 回答 3

9

尝试这个:-

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 身份验证并拒绝匿名访问

于 2013-08-26T20:58:05.460 回答
1

我遇到了一个相关问题,我的本地构建将 WindowsIdentity.GetCurrent().Name.ToString() 值识别为我的 Windows 帐户名,但是当我通过服务器访问该网站时,它始终是“DefaultAppPool”。

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

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

从那里我能够辨别用户 ID/名称并继续我的编码。我不得不重新工作一点,但这是非常值得的。感谢您的建议!

于 2014-07-14T20:22:22.447 回答
0

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

环境.用户名;

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

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

于 2022-02-03T15:52:35.490 回答