配置
全局仅一个单例,保存一组配置信息,一般直接在模块的预启动事件中赋值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. [洛谷P1198/BZOJ1012][JSOI2008] 最大数 - 树状数组/线段树?

    其实已经学了树状数组和线段树,然而懒得做题,所以至今没写多少博客 Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数 ...

  2. CSS优先级和定位

    overflow属性 hidden scroll auto hidden 超出隐藏 scroll 滚动条 Auto 自动 display属性 block inline inline-block non ...

  3. C语言 左值、右值

    左值就是在赋值中可以放在赋值操作符两边的值 右值则是只可以放在赋值操作符右边的值 ++i是直接给i变量加1,然后返回i本身,因为i是变量,所以可以被赋值,因此是左值表达式i++现产生一个临时变量,记录 ...

  4. 微信小程序:wx.request之post请求后端无法获取数据的问题

    前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题: ...

  5. Apache 安装与配置(WIN10)

    本地坏境:windows 10 Pro 1709 Apache版本:httpd-2.4.32-Win64-VC15 Apache下载地址:https://www.apachelounge.com/do ...

  6. iframe交互(一)父页面自动高度

    //父页面源码 <body style="border:1px solid red;width:200px;height:500px;" onload="IFram ...

  7. [LeetCode] Minesweeper 扫雷游戏

    Let's play the minesweeper game (Wikipedia, online game)! You are given a 2D char matrix representin ...

  8. openfire3.10.0 在mac10.10.3,jdk1.8中,安装后无法打开的解决方案

    先展示一下错误 解决方案很简单,卸载jdk,openfire之后,重新安装就行 步骤如下: (1)卸载jdk1.8 终端依次执行下面的命令 sudo rm -fr /Library/Internet\ ...

  9. Python---老王开枪

    class Person(object): """人类""" def __init__(self,name): super(Person,s ...

  10. [HDU 2036]改革春风吹满地

    Description “ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地.谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然 ...