【发布时间】:2014-02-25 17:24:12
【问题描述】:
我正在使用我自己的自定义授权属性MyAuthorizeAttribute : AuthorizeAttribute 进行授权,效果很好。问题在于角色分配。在我正在使用的安全模型中,如果用户具有Admin 角色User 和Manager 角色包含在管理员中。所以
[MyAuthorize(Roles = "Admin")]
允许访问所有方法。因此,直观的解决方案是在每个控制器上分配“管理员”。 但它是最干净的解决方案吗?
如果我有数十个角色要处理,该怎么办。 代码行如下所示:
[MyAuthorize(Roles = "Admin, Role A, Role B... Role Z")]
如果以后我决定重命名角色名称之一我应该改用角色 ID 吗?。 如果我在自定义授权方法中筛选角色,那么我冒着在该函数中创建巨大的 switch 语句的风险,如下所示:
switch(Controller Accessed)
{
case Index: //if user, admin, or any other role exist
case Manage: //if admin role exists
}
【问题讨论】:
标签: c# asp.net-mvc authentication authorization roles