yamaoto
@yamaoto
la programmeur

Как скоординировать работу IAuthenticationFilter в asp.net mvc?

Для проекта я сделал 3 фильтра IAuthenticationFilter
BasicAuthorizeAttribute - ведет проверку по ролям на основе aspnet identity
RoomMemberAuthorizeAttribute - ведет проверку на членство в комнтае (по своей бд)
RoomAdminAuthorizeAttribute - ведет проверку на членство в группе админов в контане

каждый по отдельности ведет проверку отдельно, но если их указать в одном методе, например

[RoomMemberAuthorize]
[BasicAuthorize(Roles = "Admin")]
public ActionResult Details(int? id)


то их выполнение идет последовательно и если требуется чтобы доступ к методу получали и/или члены комнаты и/или админы то по текущей логике их работы доступ дается только если они находятся в группе админов.

Каким образом лучше всего реализовать их взаимодействие?
  • Вопрос задан
  • 2273 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DSergeev
Первое правило: не нужно делать свою реализацию [Authorize] т.к. вы лучше не сделаете, она будит полна дыр. Зачем делать свою? чем не устроила стандартная?
[Authorize(Roles = "Administrator, User")]
[Authorize(Users= "User1, User2")]
Еще есть свойство Order которое устанавливает порядок выполнения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы