配置
全局仅一个单例,保存一组配置信息,一般直接在模块的预启动事件中赋值or修改。没有Scope划分,无论租户还是房东亦或者用户读取的值都不会有差异。每个模块都可以扩展这个配置。

设置

  • 它没有层级关系,是扁平结构。SettingProvider
  • 同一项设置可以为应用、每个租户、甚至每个用户设置不同的值。
  • 在客户端(Javascript),我们可以使用abp.settings命名空间来获取设置的当前值(属性isVisibleToClients == true时)。
  • 服务器端通过SettingManager取值,通过SettingDefinitionManager获取默认值等

版本/功能
版本配备功能。

应用可以有不同的版本,从而提供不同价格和功能选项给租户。

功能与设置相比:

  • 可以是树状的层级结构。FeatureProvider
  • 也有Scope,但只有应用和租户两级。
  • RequiresFeature特性,FeatureChecker 检测当前租户是否可以开启了某功能,从而为每个租户实现定制,相当于租户的权限系统。
  • 在客户端(Javascript),我们可以使用abp.features命名空间来获取功能的当前值。
  • 服务器端通过IFeatureManager遍历查找

权限
用来验证一个用户是否允许应用里的某些指定操作,在一定程度上和Feature有些像。

  • 可以是树状的层级结构。AuthorizationProvider
  • 权限有一个属性DependedFeature,用来表明一个对Feature的依赖,所以这个许可只有在满足Feature(特色)依赖时才会被允许
  • AbpAuthorize特性,AbpAllowAnonymous特性,IPermissionChecker
  • Razor视图验证权限 @if (IsGranted("Administration.UserManagement.CreateUser"))
  • 客户端验证权限 abp.auth.isGranted('Administration.UserManagement.CreateUser');
  • 服务器端通过IPermissionManager遍历查找

ABP文档笔记 - 配置、设置、版本、功能、权限的更多相关文章

  1. ABP文档笔记系列

    ABP文档笔记 - 模块系统 及 配置中心 ABP文档笔记 - 事件BUS ABP文档笔记 - 数据过滤 ABP文档笔记 - 规约 ABP文档笔记 - 配置.设置.版本.功能.权限 ABP文档笔记 - ...

  2. ABP文档笔记 - 数据过滤

    预定义的过滤 ISoftDelete 软删除过滤用来在查询数据库时,自动过滤(从结果中抽取)已删除的实体.如果一个实体可以被软删除,它必须实现ISoftDelete接口,该接口只定义了一个IsDele ...

  3. ABP文档笔记 - 事件BUS

    文档: ABP框架 - 领域事件(EventBus) EventBus & Domain Events ABP源码分析二十五:EventBus EventBus(事件总线) EventBus是 ...

  4. ABP文档笔记 - 通知

    基础概念 两种通知发送方式 直接发送给目标用户 用户订阅某类通知,发送这类通知时直接分发给它们. 两种通知类型 一般通知:任意的通知类型 "如果一个用户发送一个好友请求,那么通知我" ...

  5. ABP文档笔记 - 模块系统 及 配置中心

    ABP框架 - 模块系统 ABP框架 - 启动配置 Module System Startup Configuration ABP源码分析三:ABP Module ABP源码分析四:Configura ...

  6. ABP文档笔记 - 规约

    ABP框架 - 规约 简介 规约模式是一个特别的软件设计模式,业务逻辑可以使用boolean逻辑重新链接业务逻辑(维基百科). 实践中的大部分情况,它是为实体或其它业务对象,定义可复用的过滤器. 理解 ...

  7. CsvHelper文档-5配置

    CsvHelper文档-5配置 CsvHelper库被设计成快速且简单易用,但是有时候默认的是设置不符合要求,需要你自己改变一些东西.所以csvHelper内置了很多自定义设置选项来改变读写行为.特别 ...

  8. Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  9. 在SharePoint 2013 中使用文档库Scheduling (计划公布功能)

    本文讲述在SharePoint2013 中使用文档库Scheduling (计划公布功能)的步骤和注意的事项. 文档库Scheduling (计划公布功能) 用于设定当文档通过审批后特定的时间区间内才 ...

随机推荐

  1. float和position

    float float是欺骗父元素,让其父元素误以为其高度塌陷了,但float元素本身仍处于文档流中,文字会环绕着float元素,不会被遮蔽. absolute 但absolute其实已经不能算是欺骗 ...

  2. Orm之中介模型

    什么是中介模型 中介模型针对的是ManyToMany(多对多)的时候第三张表的问题, 中介模型其实指的就是我们不通过Django创建第三张表,如果自己不创建第三张表,而是由django给我们创建,那就 ...

  3. Java:逐行读、写文件、文件目录过滤的用法

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  4. view-xpath

    https://addons.mozilla.org/en-US/firefox/ WebDriver Element Locator

  5. Collections、Arrays 简明

    Collections : 它的出现给集合操作提供了更多的功能.这个类不需要创建对象,内部提供的都是静态方法. 一般方法 Collections. sort (list); list 集合进行元素的自 ...

  6. CentOS在线安装JDK

    一.通过yum命令在线安装jdk 1.查看云端目前支持安装的jdk版本 [root@localhost ~]# yum search java|grep jdk ldapjdk-javadoc.noa ...

  7. svg 五花 元辅音 助读器

    如图,使用svg 创建5个圆,中间 辅音字母,外圈 元音字母 以及 示例单词. 可以使用  提交 按钮 进行更新

  8. JavaScript 散列表(HashTable)

    TypeScript方式实现源码 // 特性: // 散列算法的作用是尽可能快地在数据结构中找到一个值. 在之前的章节中, 你已经知道如果 // 要在数据结构中获得一个值(使用get方法) ,需要遍历 ...

  9. linux下使用crontab定时执行脚本

    使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...

  10. drupal 8 之 calendar模块

    一.安装模块 calendar.view.date三个模块同时安装 二.创建一个事件内容类型 主要的是有一个时间字段 然后添加一个事件内容进行测试 [保存并发布] 三.创建日历视图 点击[结构]> ...