ASP.NET MVC Authenticate - PullRequest
       8

ASP.NET MVC Authenticate

1 голос
/ 25 ноября 2008

возможно ли создать что-то вроде this i ASP.NET MVC beta 1

Я пытался, но

override bool OnPreAction(string actionName, 
                          System.Reflection.MethodInfo methodInfo)

больше не существует и

override void OnActionExecuting(ActionExecutingContext filterContext)

не предоставляйте мне доступ к названию действия

Ответы [ 3 ]

5 голосов
/ 25 ноября 2008

В блоге, на который вы ссылаетесь, автор заявляет, что

Одним из способов решения этой проблемы является использование защиты на основе атрибутов, как показано в этом посте. Но тогда вам придется украшать ваши действия атрибутом безопасности, что не очень хорошая идея.

Я думаю, что это идеальный способ, и он поддерживается фреймворком. Это даст вам хорошую декларативную реализацию. Проверьте AuthorizeAttribute в System.Web.Mvc. Это позволит вам сделать что-то вроде этого:

[Authorize(Roles="Admin, Editor")]
public ActionResult Delete(int id){
    (...)
}

Так как действие Delete изменяет состояние вашей системы, я бы также добавил атрибут AcceptVerbs следующим образом:

[AcceptVerbs(HttpVerbs.Post)]
[Authorize(Roles="Admin, Editor")]
public ActionResult Delete(int id){
    (...)
}

Это гарантирует, что действие не будет принимать запросы GET.

1 голос
/ 25 ноября 2008
0 голосов
/ 25 ноября 2008

С чем связано нежелание украшать ваши действия атрибутом авторизации? Извините, но я думаю, что мне придется лучше понять вашу ситуацию, если я попытаюсь дать лучший ответ, чем тот, который уже был дан.

...