ASP.Net将userid置于全局文件中

时间:2014-03-04 19:20:31

标签: asp.net windows-authentication global-asax

我环顾四周仍然没有得到答案。

我有一个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。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

WindowsAuthentication_Authenticate方法的一个参数是WindowsAuthenticationEventArgs类型。其中一个属性是Identity,因此您应该可以通过编写e.Identity.Name来访问用户名。

参考链接: