Asp.net mvc атрибут авторизации, интегрированный с параметром - PullRequest
3 голосов
/ 12 января 2011

Я хочу использовать атрибут [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 ]

3 голосов
/ 12 января 2011

Нет, но у вас есть доступ ко всем функциональным возможностям, которые контроллер имеет внутри атрибута:

См:

Как передать параметры пользовательскому ActionFilter в ASP.NET MVC 2?

2 голосов
/ 12 января 2011

Вы не можете. В атрибутах .NET можно использовать только постоянные значения. С другой стороны, вы можете написать собственный атрибут авторизации, полученный из стандартного, и в методе AuthorizeCore реализовать эту логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...