如果设置了FormsAuthentication Ticket,为什么User.IsInRole(“Admin”)不起作用?

时间:2016-04-11 02:38:49

标签: asp.net cookies form-authentication

在调试器中,如果我深入了解User对象,我可以看到当前成员的UserData属性((System.Web.Security.FormsIdentity(User.Identity)).Ticket.UserData有" admin"在它。

User.Identity.IsAuthenticated有效但User.IsInRole("admin")返回false。

如果" admin"在UserData属性中,那么为什么User.IsInRole(" admin")返回true?

在我的登录方法中,我的身份验证票据设置如下:

 FormsAuthenticationTicket _ticket = new FormsAuthenticationTicket(1, lUserName.Text, DateTime.Now, DateTime.Now.AddMonths(1), chk_remember.Checked, Role, FormsAuthentication.FormsCookiePath);
        string encTicket = FormsAuthentication.Encrypt(_ticket);
        HttpCookie _cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
        if (chk_remember.Checked)
            _cookie.Expires = DateTime.Now.AddMonths(1);
        Response.Cookies.Add(_cookie);

0 个答案:

没有答案