2015-06-29 4 views
1

В моем модуле Orchard я рассматриваю возможность замены AuthorizeAttribute MVC в моих действиях контроллера вызовом Authorizer.Authorize(). Преимущество заключается в том, что я могу перенаправить обратно на домашнюю страницу, если пользователь не имеет права доступа к странице, поэтому не сказал им, что это проблема проверки подлинности.Авторизованный атрибут v Authorizer.Authorize

Существуют ли какие-либо проблемы безопасности с помощью этого:

public ActionResult Edit(int id) { 
    if (!_authorizer.Authorize(Permissions.MyPermission)) 
     return Redirect("~/"); 
    // do stuff here and return 
} 

вместо этого:

[Authorize] 
public ActionResult Edit(int id) { 
    // do stuff here and return 
} 

Sanity проверки наиболее ценятся.

+2

Первый позволяет вам использовать систему разрешений Orchard, что недоступно в vanilla MVC, поэтому я бы пошел с этим – Hazza

ответ

1

С обратной связью от Hazza версия Authorizer.Authorize() позволяет получить гранулярность системы разрешений Orchard. Атрибут [Авторизовать] отлично работает, когда достаточно встроенной системы ролей ASP.NET.

Я, скорее всего, использую комбинацию обоих в зависимости от того, что делает действие контроллера. Спасибо за ваш вклад Хазза!

Смежные вопросы