Я пытаюсь обновить приложение mvc 1.0, в котором был зарегистрирован пользовательский логин. Я назначаю authcookie так:
string _roles = string.Join(",", _ugr.GetUsergroupRoles(_username));
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,
_username,
DateTime.Now,
DateTime.Now.AddHours(1),
false,
_roles,
"/");
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));
HttpContext.Response.Cookies.Add(cookie);
При отладке я получаю _roles = "Admin"
И у меня есть фильтр действий, который переопределяет OnExecuting, где у меня есть:
..
string[] _authRoles = AuthRoles.Split(',');
bool isAuthorized = _authRoles.Any(r => filterContext.HttpContext.User.IsInRole(r));
if (!isAuthorized)
{
..
И здесь, если я отлаживаю _authRoles, в нем есть "Admin", а isAuthorized всегда ложно.
Если я проверю «тикет», у него есть несколько: UserData = "Admin".
Что там может быть не так? «User.IsInRole» отличается или мне нужно что-то добавить в web.config?
/ M