Hun*_*ood 10 asp.net authorization custom-attributes
我正在使用ASP.NET应用程序(不使用MVC)并且需要基于用户角色权限的授权方案,其中页面和/或方法可以要求他们需要的特定权限(而不是用户具有的角色).有没有办法扩展表单身份验证(或构建一些东西)来解决这个问题?
如果可能,我希望能够使用属性:
[RequirePermission("UserEdit")]
public partial class EditUser : System.Web.UI.Page
{
}
Run Code Online (Sandbox Code Playgroud)
甚至可能用于方法:
public class MyClass
{
...
[RequirePermission("UserEdit")]
public void Save()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我找到了这个页面,建议使用Roles获取权限:
[Authorize(Roles = "UserEdit")]
public partial class EditUser : System.Web.UI.Page
{
}
Run Code Online (Sandbox Code Playgroud)
我不太喜欢这个解决方案,但这也是解决问题的可能方法,但是我需要做些什么才能让它工作?
Jef*_*eff 10
微软的授权模式很糟糕......它被广泛认可 http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/).
那就是说.通过适应其IPrincipal.IsInRoleAPI(从而能够利用该Authorize属性)来实现交叉兼容性是很好的
所以......我做的妥协是在DB中拥有一个完整的权限模型,包括用户,角色和权限......但是当我的代码设置时,CurrentPrincipal我将用户的角色和权限压缩到了角色的角色集合中IPrincipal.这远非理想......但恕我直言,这是一个体面的妥协.其他人(Rockford Lhotka)也采用了这种方法:http://www.lhotka.net/weblog/PermissionbasedAuthorizationVsRolebasedAuthorization.aspx
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |