2010-11-26 3 views
3

Я разрабатываю приложение в ASP.NET MVC, и обычным способом защиты действий является атрибут Authorize, который защищает все действие.Динамическая безопасность для ASP.NET MVC

[Authorize(Roles = "Managers")] 
public AtionResult Info(int employeeId) 

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

 
//OK 
http://host/Employee/Info/102 

//Not OK 
http://host/Employee/Info/105 

Какой шаблон мы должны использовать для обеспечения безопасности для этого дизайна?

ответ

0

Вы можете украсить ваши действия с помощью настраиваемого атрибута, полученного из класса ActionFilterAttribute, а в методе OnActionExecuting - проверить данные во входящем запросе, а если что-то не разрешено, то бросьте исключение/переадресацию безопасности/сделайте все, что вам нужно ,

4

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

public class DynamicSecurity : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     //go to db 
     return true; 
    } 
} 
Смежные вопросы