在调试器中,如果我深入了解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);