Атрибут ASP.NET MVC Authorize не работает

В моем FilterConfig я определяю глобальный атрибут авторизации. Делая это, я запрещаю анонимный доступ ко всем контроллерам по умолчанию - так что пользователям необходимо войти в систему.

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new RedirectToHomeOnCryptographicExceptionAttribute());
        filters.Add(new System.Web.Mvc.AuthorizeAttribute());
    }
}

Тогда у меня есть мой класс контроллера. Я хочу, чтобы один метод был ограничен пользователями, которые имеют роль администратора.

public class FilesController : Controller
{
        [Authorize(Roles="Admin")]
        public ActionResult TestAccess()
        {
            if (!User.IsInRole("Admin"))
                return Content("Authorization not working as expected");

            return Content("hello");
        }
}

Теперь, когда я вхожу в систему с правами не администратора и открываю /Files/TestAccess, я получаю сообщение "Авторизация не работает должным образом". Странно, но я ожидал, что [Authorize(...)] в методе разрешит только администраторам.

Как я могу запретить другим пользователям доступ к действиям моего контроллера?

Я использую членство Reboot Брока Аллена для входа в систему и управления пользователями.

0 ответов

Другие вопросы по тегам