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 реализовать эту логику.

Другие вопросы по тегам