Смешанная авторизация аннотации - PullRequest
3 голосов
/ 12 февраля 2012

Я пишу это веб-приложение и хочу авторизовать контроллеры в смешанных условиях. Например:

Я хочу разрешить доступ, если пользователь в роли «Администратор» или его имя пользователя «programad», например:

[Authorize(Roles = "Administrator", Users = "programad")]

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

Я установил это на уровне контроллера, но, похоже, он не работает, он просит меня снова войти в систему и лишает меня доступа, даже когда я ввожу свои учетные данные.

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

1 Ответ

2 голосов
/ 12 февраля 2012

Это потому, что AuthorizeAttribute говорит, что пользователь должен быть в роли «Администратор» И с именем «programad». Самый простой обходной путь - создать другую роль, поместить в нее пользователя «programad» и затем изменить атрибут AuthorizeAttribute на

.

[Authorize(Roles = "Administrator, NewRole")]

где NewRole - это то, что вы называете новой ролью для пользователя "programad".

Если вам действительно нужно изменить AuthorizeAttribute для работы с ролью ИЛИ пользователем, вам нужно будет создать новый класс, производный от AuthorizeAttribute и переопределяющий метод AuthorizeCore , заполняющий логику авторизации. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...