Для проекта я сделал 3 фильтра IAuthenticationFilter
BasicAuthorizeAttribute - ведет проверку по ролям на основе aspnet identity
RoomMemberAuthorizeAttribute - ведет проверку на членство в комнтае (по своей бд)
RoomAdminAuthorizeAttribute - ведет проверку на членство в группе админов в контане
каждый по отдельности ведет проверку отдельно, но если их указать в одном методе, например
[RoomMemberAuthorize]
[BasicAuthorize(Roles = "Admin")]
public ActionResult Details(int? id)
то их выполнение идет последовательно и если требуется чтобы доступ к методу получали и/или члены комнаты и/или админы то по текущей логике их работы доступ дается только если они находятся в группе админов.
Каким образом лучше всего реализовать их взаимодействие?