Подключите [Авторизовать] к пользовательской базе данных

Как мне приказать атрибуту [Authorize] подключиться к моей собственной Roles базе данных, чтобы проверить наличие в ней конкретных ролей?

Что я знаю:

  • Мне нужно создать класс, унаследованный от AuthorizeAttribute.

Чего я не знаю:

  • Что писать внутри моего пользовательского класса таким образом, чтобы [CustomAuthorize(Roles: "Administrator")] проверял, имеет ли текущий пользователь эту роль.

Пожалуйста, мне очень нужна помощь с этим.


person Community    schedule 03.02.2014    source источник


Ответы (2)


Переопределите метод AuthorizeCore() и верните истину или ложь.

person SLaks    schedule 03.02.2014
comment
Так что мне просто нужно проверить наличие записи в базе данных и вернуть true или false? И как мне перенаправить на действие по умолчанию, действие Login, когда аутентификация не удалась? - person ; 04.02.2014
comment
@Federico: Базовый класс сделает это за вас. aspnetwebstack.codeplex.com/SourceControl/latest#src/ - person SLaks; 04.02.2014
comment
А как базовый класс знает, где взять текущий User? Это в httpContext? - person ; 04.02.2014

Просто создайте настраиваемый RoleProvider для работы с идентификацией ASP.NET.

person gretro    schedule 03.02.2014
comment
Я лучше создаю свой Membership Provider, но не знаю, как это сделать. - person ; 04.02.2014
comment
Эта ссылка предназначена для настройки Role Provider, есть ли ссылки для создания пользовательских User Provider? - person ; 04.02.2014