配置
全局仅一个单例,保存一组配置信息,通常直接在模块的预启动事件中赋值or修改。没有Scope划分,不管租户仍是房东亦或者用户读取的值都不会有差别。每一个模块均可以扩展这个配置。服务器
设置ide
- 它没有层级关系,是扁平结构。SettingProvider
- 同一项设置能够为应用、每一个租户、甚至每一个用户设置不一样的值。
- 在客户端(Javascript),咱们可使用abp.settings命名空间来获取设置的当前值(属性isVisibleToClients == true时)。
- 服务器端经过SettingManager取值,经过SettingDefinitionManager获取默认值等
版本/功能
版本配备功能。ui
应用能够有不一样的版本,从而提供不一样价格和功能选项给租户。事件
功能与设置相比:ip
- 能够是树状的层级结构。FeatureProvider
- 也有Scope,但只有应用和租户两级。
- RequiresFeature特性,FeatureChecker 检测当前租户是否能够开启了某功能,从而为每一个租户实现定制,至关于租户的权限系统。
- 在客户端(Javascript),咱们可使用abp.features命名空间来获取功能的当前值。
- 服务器端经过IFeatureManager遍历查找
权限
用来验证一个用户是否容许应用里的某些指定操做,在必定程度上和Feature有些像。it
- 能够是树状的层级结构。AuthorizationProvider
- 权限有一个属性DependedFeature,用来代表一个对Feature的依赖,因此这个许可只有在知足Feature(特点)依赖时才会被容许
- AbpAuthorize特性,AbpAllowAnonymous特性,IPermissionChecker
- Razor视图验证权限 @if (IsGranted("Administration.UserManagement.CreateUser"))
- 客户端验证权限 abp.auth.isGranted('Administration.UserManagement.CreateUser');
- 服务器端经过IPermissionManager遍历查找