2

我正在尝试在 aspx 页面上获取 Windows 用户名。

我尝试了以下方法:

<% System.Threading.Thread.CurrentPrincipal = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()) %>
<%= System.Threading.Thread.CurrentPrincipal.Identity.Name %>

但所做的只是给我IIS APPPOOL/SBalance - 这不是 Windows 用户名!

但是,如果我添加以下服务器控件:

<asp:LoginName ID="LoginName1" runat="server" />

这确实成功地预先填充了我的域和用户名。

那么如何在不使用登录控件的情况下在 aspx 页面上将域/用户名作为字符串获取?

谢谢

4

2 回答 2

3

如果您使用 Windows 身份验证,您可以通过以下方式获取用户名User.Identity.Name

string windowsLogin = Page.User.Identity.Name;
于 2012-11-07T16:02:56.643 回答
0

您需要在 web.config 中启用模拟

<identity impersonate="true" />

那么你需要在 IIS 中启用 windows 模拟并禁用匿名身份验证

于 2012-11-07T16:04:07.623 回答