我已经安装了Thinktecture.IdentityModel.Core包。
假设我已经AuthorizationManager
在web.config文件中注册了我的自定义实现。
public class AuthorizationManager : ClaimsAuthorizationManager {
public override Boolean CheckAccess(AuthorizationContext context) {
// authorization implementation
}
}
在应用程序数据库中为用户角色定义了一个权限。因此,如果它在角色中,它User
可能具有Read
权限Blogs
和资源。Arts
BasicUser
我看到的工作流程:
- 在登录时,您进行db 查询以从经过身份验证的用户的所有分配角色中获取所有操作资源对
- 那么你必须向身份添加声明(基于数据库查询结果)
ClaimsAuthorizationAttribute
打电话给ClaimsAuthorizationManager
ClaimsAuthorizationManager
在内部使用步骤 2 中的声明检查身份验证 cookie
我对吗?
还是我应该在CheckAccess
方法内进行数据库权限查找?这将在每个请求的基础上工作吗?
我如何将 db 感染的动作资源集转换/附加到身份声明中?