在CakePHP中使用ACL的最佳方法是将每个用户(当他们注册时)添加为ARO吗? 还有另一种方法吗?这似乎如果你有一个足够大的用户群,它可能会减慢一点......
答案 0 :(得分:1)
使用ACL会降低系统速度。据我所知,将它们全部添加为ARO是最好的方法。
如果您的系统不需要对每种方法进行细粒度控制,您可以考虑使用Auth并使用isAuthorized()
在方法级别上授权您的用户。这比使用ACL快得多,但没有ACL提供的细粒度控制。
答案 1 :(得分:1)
ShaneK,
ARO只构造一次(对于每个用户)。当然,ARO和ACO的ACL实现在第一眼看上去很奇怪,但在重新组装稀疏矩阵的访问权限方面肯定有其优势。
答案 2 :(得分:0)
我不知道这是否是实现“基于ROLES的安全系统”来控制对某些资源的访问的最佳方式,但我建议您在USERS表中创建一个新列以存储第一级ARO别名,然后你可以在你的行动中使用它来检查当前用户是否可以访问资源。