1.1 ABPZero - 概述

  • 介绍
  • 微软ASP.NET身份框架
  • 权限
  • 会话
  • 角色管理
  • 默认角色
  • 用户管理
  • 多租户
  • 设置管理
  • 审计日志

1.1.1 介绍

Modulde Zero实现了ASP.NET Boilerplate框架的基本概念,如租户管理(多租户),角色管理,用户管理,会话,授权(许可系统),设置管理和审计日志。

1.1.2 微软ASP.NET身份框架

Modulde Zero是基于微软的ASP.NET身份框架。它扩展了用户和角色管理者和使用泛型仓储实现了用户和角色存储。它支持可被ASP.NET使用的任意ORM(如Entity Framework和NHibernate)。

当module zero扩展身份框架,它有许多独特的特性:

1.1.3 权限

在ASP.NET Boilerplate系统,用户通过权限授权。权限是应用程序的特定功能的特定特权。它可以是“进入一个特定网页”,或“在页面执行某些特定操作”或更一般的访问权(例如下载的应用程序的excel文件)。有关详细信息,请参阅授权文件。

1.1.4 会话

Module zero实现了IAbpSession。你可以注入,你可以随时随地注入它来获取当前用户和租户的ID。

1.1.5 角色管理

角色是用来分组权限的。当用户有一个的角色,那么他/她将拥有该角色的所有权限。在module-zero中,角色可以是动态或静态的:

静态角色:静态角色有一个已知的名字(如“管理员”),不能更改此名称(我们可以更改显示名称)。它存在于系统启动时,不能被删除。因此,我们可以写基于静态角色名称代码。

动态(非静态)角色:我们可以创建部署后,一个充满活力的作用。然后,我们可以授予该角色的权限,我们可以指定角色的一些用户,我们可以将其删除。我们无法知道在开发时间动态的角色名称。

1.1.6 默认角色

一个或多个角色可被设置为默认角色。默认的角色分配给新增/注册用户为默认值。这不是一个开发时间属性,可以部署之后被设置或改变。

1.1.7 用户管理

用户是可以登录到应用程序的人,并基于其权限执行某些操作。

用户可以具有零个或多个角色。用户将继承他所有角色的权限的联合。另外,我们可以设置用户特定的权限。用户特定的权限设置将覆盖角色设置的权限。

1.1.8 多租户

百科:多租户是指一个软件以单个实例运行在一个服务器上,并为多个租户(顾客)服务的软件架构。

ASP.NET Boilerplate提供了 module-zero实现多租户的支持。因此,我们可以有一个应用程序部署到单一的环境,同时被多个客户(承租人)使用。

租户可以拥有它自己的角色,用户和设置。它不限制角色,用户和设置。我们可以为特定的租户实体实现IMustHaveTenant和IMayHaveTenant。 当租户用户登录时ASP.NET Bolierplate自动隐藏(过滤器)其他租户的实体。参照数据过滤器的文档。

1.1.9 设置管理

Module zero实现了ASP.NET Boilerplater 设置存储来存储/检索设置到/从数据库。请参阅设置文档的详细信息。

1.1.10 审计日志

Module zero实现了ASP.NET Bolierplate的审计日志系统。从而,自动记录的所有用户操作到数据库。

番外篇--Moddule Zero介绍的更多相关文章

  1. 番外篇--Moddule Zero多租户管理

    番外篇--Moddule Zero多租户管理 2.1.1 关于多租户 强烈建议阅读这个文件前阅读多租户文档. 2.1.2 启用多租户 ASP.NET Boilerplate和module-zero可以 ...

  2. 番外篇--Moddule Zero 版本管理与组织单位管理

    Moddule Zero 版本管理 2.2.1 简介 大多数SaaS(多租户)应用都会有多个版本(包),这些版本的功能点也会各不相同.因此,他们能够为他们的租户(客户)提供不同的价格和功能点选项. 关 ...

  3. 番外篇--Moddule Zero安装

    Moddule Zero 安装 1.2.1 从模板创建 使用ABP和module-zero开始一个新项目最简单的方式是使用启动模板.详细了解请参考启动模板文档. 1.2.2 手动安装 如果你有一个预先 ...

  4. [uboot] (番外篇)global_data介绍(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ooonebook/article/det ...

  5. 番外篇--Moddule Zero启动模板

    1.3 ABPZero - 启动模板 1.3.1 简介 使用ABP和moudle-zero开始一个新项目的最简单的方式是在模板页创建模板.记住要勾选 Include module zero. 在创建并 ...

  6. [uboot] (番外篇)uboot之fdt介绍

    http://blog.csdn.net/ooonebook/article/details/53206623 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...

  7. [uboot] (番外篇)uboot之fdt介绍 (转)

    以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(B ...

  8. [uboot] (番外篇)uboot串口&console&stdio设备工作流程 (转)

    [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[project X] tiny210(s5pv210)从存储设备加载代码到D ...

  9. [uboot] (番外篇)uboot 驱动模型(转)重要

    [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[project X] tiny210(s5pv210)从存储设备加载代码到D ...

随机推荐

  1. /sbin/nologin 和 /bin/false 的区别

    /bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务 如果想要用false在禁止login的同时允许ftp ...

  2. Web API系列之三 基本功能实现

    Web API系列之二讲解了如何搭建一个WebApi的基架,本文主要在其基础之上实现基本的功能.下面开始逐步操作: 一.配置WebApi的路由-用于配置外部如何访问内部资源的url的规则 1.添加Gl ...

  3. py2 to py3 return iterator

    Views And Iterators Instead Of Lists Some well-known APIs no longer return lists: dict methods dict. ...

  4. JDK中AbstractQueuedSynchronizer应用解析

    这个类首先是一个抽象类,定义了一个模板,很多java同步相关的类(ReetrantLock.Semaphore.CountDownLatch等)都是基于AbstractQueuedSynchroniz ...

  5. python常用模块详解

    python常用模块详解 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用p ...

  6. 云计算之路-阿里云上: RDS实例CPU跑满引发的故障

    今天上午 10: 40 左右,我们所使用的阿里云 RDS 实例的 CPU 突然飙高到近 100% ,造成大量数据库查询操作缓慢.超时,在这个恶劣条件下大量 memcached 缓存无法建立,这样的雪上 ...

  7. p2p 打洞技术

    根据通信双方所处网络环境不同,点对点通信可以划分成以下三类:i> 公网:公网ii>公网:内网iii>内网:内网前两种容易实现,我们这里主要讨论第三种.这其中会涉及到NAT和NAPT的 ...

  8. Java学习笔记3(数组)

    1.数组的定义: 第一种: public class ArrayDemo{ public static void main(String[] args){ //定义数组 int [] arr = ne ...

  9. 一些关于memcpy memmove函数的区别,和模拟实现

    memcpy: 它是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. 函数原型:void* memcp ...

  10. sqlalchemy-数据库操作

    import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarat ...