Пользовательская аутентификация не работает с asp.net 2.0 - PullRequest
1 голос
/ 11 мая 2010

Я пытаюсь обновить приложение 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

1 Ответ

2 голосов
...