我正在尝试检索使用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。这有什么不对? 谢谢!
答案 0 :(得分:2)
使用User.Identity.Name
获取用户名。
Windows身份验证不使用FormsAuthenticationTicket
。