使用ASP.NET Forms身份验证应用的当前用户

时间:2013-05-09 18:42:27

标签: asp.net web-applications iis-7 asp.net-authentication asp.net-authorization

我正在尝试检索使用ASP.NET Forms身份验证的Web应用程序中的当前用户。 但是,System.Security.Principal.WindowsIdentity.GetCurrent().Name返回domain \ windowsUser,而不是FormsAuthentication.RedirectFromLoginPage方法中使用的用户名。 我在配置文件中使用Forms身份验证:

<authentication mode="Forms">
      <forms loginUrl="Views/Login.aspx" name=".ASPXFORMSAUTH" timeout="1" cookieless="UseUri">
      </forms>
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>

我也在尝试跟随微软的步骤并使用以下代码段检索身份验证票证:

    if (Request.IsAuthenticated)
    {
         var ident = User.Identity as FormsIdentity;
        if (ident != null)
        {

            FormsAuthenticationTicket ticket = ident.Ticket;
            var name = ticket.Name;
        }
    }

但是,ident始终为null,因为它是WindowsIdentity而不是FormsIdentity。这有什么不对? 谢谢!

1 个答案:

答案 0 :(得分:2)

使用User.Identity.Name获取用户名。

Windows身份验证不使用FormsAuthenticationTicket