В отладчике, если я копаюсь в объекте 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 следующим образом:
public static string CreateEncryptedTicket(string username, string roles, DateTime expireAt, bool isPersistent = true) {
var ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, expireAt, isPersistent, roles, FormsAuthentication.FormsCookiePath);
return FormsAuthentication.Encrypt(ticket);
}
затем (где roles — список ролей, разделенных запятыми):
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, MemberService.CreateEncryptedTicket(member.Id, roles, expireDate));
HttpContext.Response.Cookies.Add(cookie);
web.config
? - person balexandre   schedule 16.08.2012User.IsInRole("admin")
, чтобы проверить, находится ли пользователь в роли администратора... - person Chaddeus   schedule 16.08.2012