在我的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
}
非常感谢善意检查。
答案 0 :(得分:1)
根据Hazza的反馈,Authorizer.Authorize()版本允许Orchard的权限系统的粒度。当内置的ASP.NET角色系统足够时,[Authorize]属性很有用。
我可能会使用两者的组合,具体取决于控制器操作的作用。感谢您输入Hazza!