授权属性 v Authorizer.Authorize
Authorize attribute v Authorizer.Authorize
在我的 Orchard 模块中,我正在考虑将控制器操作中的 MVC 的 AuthorizeAttribute 替换为对 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
}
最感谢的是健全性检查。
根据 Hazza 的反馈,Authorizer.Authorize() 版本允许 Orchard 权限系统的粒度。当内置 ASP.NET 角色系统足够时,[Authorize] 属性非常有用。
我可能会结合使用两者,具体取决于控制器的操作。感谢您的输入 Hazza!
在我的 Orchard 模块中,我正在考虑将控制器操作中的 MVC 的 AuthorizeAttribute 替换为对 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
}
最感谢的是健全性检查。
根据 Hazza 的反馈,Authorizer.Authorize() 版本允许 Orchard 权限系统的粒度。当内置 ASP.NET 角色系统足够时,[Authorize] 属性非常有用。
我可能会结合使用两者,具体取决于控制器的操作。感谢您的输入 Hazza!