我制作了一个在右上方显示Windows用户名的Web应用程序。
如果我在localhost:5903/index.aspx
上打开webapp,我会得到正确的Windows用户。
像这样 -
但是如果我打开localhost/db/index.aspx
我会得到IIS AppPool用户 -
这里db是我的应用程序的目录。
我不知道为什么会这样。我希望localhost也显示正确的用户名。
我的IIS树,这里DB(1)是我的webapp -
我选择Windows身份的C#代码 -
<li><% string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;%>
<a><%= userName %></a>
</li>
答案 0 :(得分:2)
您需要在IIS中仅为Windows身份验证设置站点并关闭匿名。
为您的网站进入IIS,然后在功能视图下。
然后在IIS类别&gt;身份验证&gt;将Windows身份验证设置为已启用,将所有其他人(匿名....其他)设置为已禁用。
而不是......
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
使用
HttpContext.Current.User.Identity.Name;