配置
全局僅一個單例,保存一組配置信息,通常直接在模塊的預啓動事件中賦值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遍歷查找