我正在将 AzMan (1.0) 用于 ASP.Net Web 应用程序,并且我对嵌套角色有疑问。
假设我有以下角色: MyApp MyAppUser MyAppAdmin MyAppSupport
在大多数情况下,所有用户 (MyApp) 都可以访问该应用程序,但某些功能将特定于其他角色。
我想以声明方式将对网页的访问权限限制为 MyApp 角色的成员。
[PrincipalPermission(SecurityAction.Demand, Role = "MyApp")]
我将检查 User.IsInRole 或使用 AzMan API 检查我的代码中的操作权限。
用户被分配到较低级别的角色(用户、管理员、支持),这些角色被添加到 MyApp 角色。
问题是当我检查用户是否是 MyApp 角色的成员时,他们不是,即使他们所在的角色属于 MyApp 角色。检查这一点的唯一方法是递归遍历所有角色吗?这意味着我不能使用声明性安全性,或者这样做我还必须将所有用户添加到顶级组(不理想)。