繁体   English   中英

在ASP.NET中提取当前用户名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM