2015-06-29 54 views
1

在我的Orchard模块中,我正在考虑用对Authorizer.Authorize()的调用来替换我的控制器操作中的MVC的AuthorizeAttribute。好处是,如果用户无权访问页面,我可以重定向回主页,因此不会告诉他们这是一个身份验证问题。授权属性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 
} 

完整性检查是最赞赏。

+2

第一个允许你利用Orchard的权限系统,这在vanilla MVC中是不可用的,所以我会选择 – Hazza

回答

1

根据Hazza的反馈,Authorizer.Authorize()版本允许Orchard权限系统的粒度。当内置的ASP.NET角色系统足够时,[Authorize]属性工作得很好。

我可能会使用两者的组合,这取决于控制器操作在做什么。感谢您的输入Hazza!