帮网站做点击,wordpress 随机读取一篇文章,济南商城网站制作,wordpress怎么看ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展。同时重写了ABP核心模块中的permission功能#xff0c;以实现授权。注意#xff1a;ABP仅仅使用了Asp.Net Identity的身份认证功能#xff0c;但没有使用Asp.Net Identi…ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展。同时重写了ABP核心模块中的permission功能以实现授权。注意ABP仅仅使用了Asp.Net Identity的身份认证功能但没有使用Asp.Net Identity中的基于role和Claim的授权。 ABP Zero 中扩展的Asp.Net Identity实体类: AbpUser, AbpRole。
AbpUser: 代表user的Entity。其实现了Asp.Net Identity的IUser接口。 AbpRole: 代表role的Entity。其实现了Asp.Net Identity的IRole接口。一个role代表一组权限。ABP建议检查user的permission而非role以判断user是否可以执行某个操作。 ABP Zero 中扩展Asp.Net Identity重管理实体的类: AbpUserStore, AbpUserManagerAbpRoleStoreAbpRoleManager。 AbpUserStore:主要实现了ASP.NET Identity Framework中与user操作相关的接口IUserPasswordStoreTUser, long,IUserEmailStoreTUser, long,IUserLoginStoreTUser, long,IUserRoleStoreTUser, long,IQueryableUserStoreTUser, long。
同时也实现了IUserPermissionStoreTTenant, TUser接口。该类通过IRepositoryTUser, long,IRepositoryUserLogin, long,IRepositoryUserRole, long,IRepositoryTRole,IRepositoryUserPermissionSetting, long实例完成User实体的CRUD操作以及与User关联关系的CRUD操作。 AbpUserManager继承扩展了ASP.NET Identity Framework中UserManagerTUser, long类。实现了与User相关的领域服务。 AbpRoleStore其实现了Asp.Net Identity的IQueryableRoleStore接口。 通过IRepositoryTRoleIRepositoryUserRole, long和IRepositoryRolePermissionSetting, long实例完成Role及与role相关的permission/user实体的CRUD操作。 AbpRoleManagerTTenant, TRole, TUser继承自Asp.Net Identity的RoleManagerTRole, int类。这是一个抽象类实际项目需要指定具体的TTenant, TRole, TUser类型来扩展这个抽象类。该抽象类实现了与Role相关的领域逻辑。 其它类 UserRole:实现了CreationAuditedEntitylong的实体类。描述User 和 Role的关系。 PermissionSetting代表user/role 和 permission的关系实体类 OrganizationUnit实现了FullAuditedEntitylong的实体类用于表示Organization的实体 UserOrganizationUnit实现了 CreationAuditedEntitylong的实体类。表示user 和 Organization的关联关系。 UserLogin:实体类用于保存通过外部授权服务授权的用户的登入信息。 RolePermissionCacheItem这个类实例被用于缓存其HashSetstring类型的GrantedPermissions和ProhibitedPermissions对象用于保存role的权限 UserPermissionCacheItem这个类实例被用于缓存其HashSetstring类型的GrantedPermissions和ProhibitedPermissions对象用于保存user的权限 PermissionEqualityComparer : 实现了IEqualityComparerPermission接口中的Equal和GetHashCode方法用于比较两个permission.
AbpRolePermissionCacheItemInvalidator:用于定义响应RolePermissionSetting和AbpRoleBase实体改变事件的处理函数。实际完成的工作就是将相应的缓存对象从缓存中删除。 AbpUserPermissionCacheItemInvalidator用于定义响应UserPermissionSettingUserRole和AbpUser实体改变事件的处理函数。实际完成的工作就是将相应的缓存对象从缓存中删除。
DefaultExternalAuthenticationSourceTTenant, TUser/IExternalAuthenticationSourceTTenant, TUser:通过外部身份认证源比如Facebook的认证信息创建User.
PermissionChecker:继承自IPermissionChecker检查user是否被授予了某个权限。 IMayHaveOrganizationUnit如果entity可能和Organization有关联就可以考虑实现该接口。
IMustHaveOrganizationUnit如果entity一定和Organization有关联就可以考虑实现该接口。 IOrganizationUnitSettings定义了一项和OrganizationUnit相关的设置MaxUserMembershipCount以及获取和修改MaxUserMembershipCount的方法。
OrganizationUnitSettings通过settingManager实现了IOrganizationUnitSettings定义的属性和方法 OrganizationUnitManager实现与OrganizationUnit相关的领域逻辑。使用IRepositoryOrganizationUnit, long实例完成OrganizationUnit实体的CRUD操作。 IdentityFrameworkClaimsAbpSession : 继承自ClaimsAbpSession。通过 ASP.NET Identity framework接口获取当前用户的userID IdentityResultExtensions为ASP.NET Identity 的IdentityResult类型添加了如下的扩展方法。这些方法主要用于本地化error message. IdentityResultExtensions定义了一个用于map消息和本地化资源文件中key的字典对象这个字典对象帮助获取消息的本地化后的消息。 返回ABP源码分析系列文章目录