Asp.net mvc атрибут авторизации, интегрированный с параметром
Я хочу использовать [Authorize()]
атрибут действия следующим образом:
[Authorize(Roles = "Administrator" or UserId == id)]
public ActionResult Edit(int id){ }
Прямо сейчас я использую такую логику:
public ActionResult Edit(int id)
{
if (User.IsInRole("Administrator") || User.Identity.Name.Equals(id))
{ }
}
2 ответа
Решение
Нет, но у вас есть доступ ко всем функциональным возможностям, которые контроллер имеет внутри атрибута:
Увидеть:
Как передать параметры пользовательскому ActionFilter в ASP.NET MVC 2?
Ты не можешь В атрибутах.NET можно использовать только постоянные значения. С другой стороны, вы можете написать собственный атрибут авторизации, производный от стандартного, и в методе AuthorizeCore реализовать эту логику.