[英]Pulling current username in ASP.NET
我希望IIS获取查看该页面的人的Active Directory用户名。 这可能吗? 我以为我可以通过ASP.NET身份验证来做到这一点,但是当我尝试它时,我得到了一个'401 Unauthorized:由于凭据无效而拒绝访问'错误消息。 基本上,我想要做的是让网页获取当前用户名,进行比较以查看此人是否是特定安全组的成员,如果是,则显示一些内容。 使用VS2010内置测试服务器在我的本地PC上运行良好,但它只是拉动我的AD细节。 现在我已经完成了所有工作,我想将它移动到运行IIS7的测试服务器以使其在那里工作。
我在default.aspx Code Behind(在我的本地机器上工作)中唯一的代码如下:
string[] arr = System.Web.HttpContext.Current.Request.LogonUserIdentity.Name.Split('\\');
if (arr.Length > 0)
{
lblDomain.Text = arr[0].ToString();
lblUser.Text = arr[1].ToString();
}
从我在这里找到的(http://stackoverflow.com/questions/10584545/activedirectory-current-username-in-asp-net)它看起来像我想要的可能,但我想知道它是否与我的相关代码背后。 我也不确定我的Web.Config是否需要特殊功能。 我确实在那里有以下内容,但我收到500错误。
<authentication mode="Windows"/>
<identity impersonate="true"/>
我已经尝试了上面的Stack Overflow问题的答案,但仍然有500个错误。 任何提示将不胜感激。
还试过以下但仍然有500个错误。 不知道哪里出错了。
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
和:
string userName = Environment.UserName;
在IIS中,尝试启用Windows身份验证,然后禁用所有其他形式的身份验证(包括匿名)。
如果启用了模拟, Environment.UserName将设置为您想要的。
您可以使用
HttpContext.Current.User.Identity.Name
It will give you Domain\UserName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.