В моем AccountController у меня есть такой код:
ControllerContext.HttpContext.User = new MyAppUserPrincipal(user);
Когда я делаю это в отладчике, я вижу, что ControllerContext.HttpContext.User.IsInRole ("Admin") имеет значение true.
Далее у меня есть HomeController, защищенный пользовательским атрибутом:
[AuthorizeMyApp(Roles = "Admin")]
В определении атрибута у меня есть это:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var principal = filterContext.HttpContext.User ;
if (! principal.IsInRole(_roles) )
и т.д.
Вот что странно, после входа в систему и попытки перейти в Дом:
Principal.Identity.Name имеет ожидаемое имя, и IsAuthenticate имеет значение true; тем не мение
a) Principal.IsInRole ("Admin") является ложным
б) (принципал As MyAppUserPrincipal) равен нулю
Я что-то здесь не так делаю? (используя MVC2)