【发布时间】:2011-09-15 23:36:24
【问题描述】:
在 Yii 中,有一个 accessControl 过滤器和一个 accessRules 方法来处理对某些任务的简单授权。在我的应用程序中,我有 RBAC 来授权用户进入角色。
我的问题是,除了 RBAC 之外,我还应该使用 accessControl 过滤器和 accessRules 方法,还是可以删除它们并专门使用 RBAC?
【问题讨论】:
标签: frameworks authorization yii rbac
在 Yii 中,有一个 accessControl 过滤器和一个 accessRules 方法来处理对某些任务的简单授权。在我的应用程序中,我有 RBAC 来授权用户进入角色。
我的问题是,除了 RBAC 之外,我还应该使用 accessControl 过滤器和 accessRules 方法,还是可以删除它们并专门使用 RBAC?
【问题讨论】:
标签: frameworks authorization yii rbac
您可以将 RBAC 与 accessRules() 方法一起使用,方法是传递一个包含您要检查的角色的数组(当然,这些角色需要在您的 RBAC 架构中定义才能正常工作)。
更多信息:http://www.yiiframework.com/doc/api/1.1/CAccessControlFilter
您也可以单独使用 RBAC,方法是在每次您想检查用户是否有权访问资源、任务或其他任何内容时调用 Yii::app()->user->checkAccess()。
当您需要根据用户角色限制对控制器/操作的访问时,我建议您使用 accessRules + RBAC,而当涉及更精细的访问控制时,我建议您单独使用 RBAC。
【讨论】: