你需要尝试一些不同的方式来获取Active Directory的信息有些时候。这里有一些的,在其他帖子显示的方式:
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
string userName = Environment.UserName;
string userName = HttpContext.Current.User.Identity
只需添加这些,调试通过,看看他们正在返回的IIS用户名也是如此。
这里有两个不同的windows用户 - 第一个是你的应用程序用户,第二个是你的ASP.NET应用程序(IIS角度的应用程序池)正在运行的用户(或Windows帐户)。 WindowsIdentity.GetCurrent通常会返回此引用。
要获得使用该应用程序的实际Windows用户,您必须强制进行身份验证。为此,您可以在IIS中为该网站启用集成身份验证(Windows身份验证)。还要修改您的ASP.NET配置以使用Windows身份验证。现在你可以使用HttpContext.Current.User.Identity来获取实际的用户。
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<authentication mode="Windows" />
是部署域的服务器吗? – Mark
应用程序已配置Windows身份验证并且服务器位于域中。 – DarkW1nter
@ DarkW1nter,你可以显示你正在用来获取用户的代码行吗?你的网页也有任何登录屏幕..? – MethodMan