我环顾四周仍然没有得到答案。
我有一个ASP.NET应用程序,它使用Windows身份验证。 Web.config已正确配置:
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
我在方法中获取了userid: WindowsAuthentication_Authenticate(对象发件人,WindowsAuthenticationEventArgs e)
获取用户ID的代码:
var userId = String.Empty;
//Dispalys the UserName from AD.
System.Security.Principal.IPrincipal User;
User = System.Web.HttpContext.Current.User;
if (User != null)
{
string username = User.Identity.Name;
username = username.Substring(username.IndexOf("\\") + 1);
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
userId = (textInfo.ToTitleCase(username));
}
在这种情况下,System.Web.HttpContext.Current.User始终为null。
我在这里做错了什么?
答案 0 :(得分:2)
WindowsAuthentication_Authenticate
方法的一个参数是WindowsAuthenticationEventArgs
类型。其中一个属性是Identity
,因此您应该可以通过编写e.Identity.Name
来访问用户名。
参考链接: