授权属性v Authorizer.Authorize

时间:2015-06-29 18:58:45

标签: orchardcms

在我的Orchard模块中,我正在考虑通过调用Authorizer.Authorize()来替换我的控制器操作中的MVC的AuthorizeAttribute。优点是,如果用户无权访问页面,我可以重定向回主页,因此不会告诉他们这是一个身份验证问题。

使用此问题是否存在任何安全问题:

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
}

非常感谢善意检查。

1 个答案:

答案 0 :(得分:1)

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

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