2021年3月10日

OAuth 2.0 授权框架(Authorization Framework)介绍

摘要: Open Authorization(OAuth)是一个开放、安全的协议。它通过引入授权层避免了第三方应用触及用户敏感信息的情况发生,并且可以更加容易的分别管理授权。也可以基于OAuth实现单点登录(SingleSignOn,SSO)。 一、角色(Roles) OAuth定义了四个角色,依次如下: 阅读全文

posted @ 2021-03-10 07:59 庭前花满留晚照 阅读(758) 评论(0) 推荐(0) 编辑

2021年2月24日

为认证系统生成自签名数字证书

摘要: 出于安全考虑,认证系统多采用HTTPS协议,该协议是在HTTP的基础上引入SSL,为实现数据的安全性、完整性和保密性需要使用到权威机构颁发的数字证书。但出于成本考虑,在系统开发和测试阶段一般不会向CA申请数字证书。这时候就需要生成自签名证书。在CentOS上可以使用openssl生成自己的数字证书。 阅读全文

posted @ 2021-02-24 21:01 庭前花满留晚照 阅读(179) 评论(0) 推荐(0) 编辑

2021年1月30日

基于中间件的授权管理示例

摘要: 基于角色访问控制(RBAC)的主要思路是以角色为“桥梁”连接用户与资源,而角色对资源的访问控制又是通过授权许可来完成。菜单是一种特殊的资源,不过为了从技术上和业务上方便操作,可以将其单独抽出来,做为一种独立的“资源”处理。开始之前需要理解授权与认证,此处没有对认证的处理,默认流程走到授权时都是认证通 阅读全文

posted @ 2021-01-30 20:38 庭前花满留晚照 阅读(231) 评论(0) 推荐(0) 编辑

2021年1月27日

为AspNetCore中间件编写单元测试

摘要: 1.编辑单元测试项目文件 例如使用xUnitTest项目时,在项目文件中的Project节点下加入如下代码: 1 <ItemGroup> 2 <FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference> 3 阅读全文

posted @ 2021-01-27 19:34 庭前花满留晚照 阅读(116) 评论(0) 推荐(0) 编辑

2021年1月1日

权限数据结构

摘要: 权限管理基本可以分为组织与架构,用户与角色,资源与授权三个部分,其可能的数据结构示例如下: 1.组织与架构 2.用户与角色 3.资源与授权 阅读全文

posted @ 2021-01-01 16:14 庭前花满留晚照 阅读(246) 评论(0) 推荐(0) 编辑

权限的继承与分组

摘要: 根据权限管理实际情况,需要分组的主要是用户和角色,依次是用户组、角色组。比如某员工在同一组织下从A组换到B组,如果有用户组的话可以直接调整其所属用户组即可达到权限变更的目的。再比如某员工职位或职级调整后,只需要相应的调整其所属角色或角色组即可达到权限变更的目的。结构示意如下: 角色的继承可以分为单继 阅读全文

posted @ 2021-01-01 16:12 庭前花满留晚照 阅读(473) 评论(0) 推荐(0) 编辑

从只有两张表的权限管理谈起

摘要: 通常最简单的权限管理只需要一张用户表User,一张资源表Resource,一张用户与资源的关联表ResourceInUser即可。表示同一个用户可以拥有多个资源,同一个资源可以被多个用户拥有,可能的结构如下: 有时候我们需要同一个资源对不同的用户有着不一样的表现,比如用户A是临时拥有某资源,而用户B 阅读全文

posted @ 2021-01-01 16:10 庭前花满留晚照 阅读(229) 评论(0) 推荐(0) 编辑

2020年6月8日

JsonSchema 解析示例

摘要: 1 /// <summary> 2 /// JsonSchema Parse Demo 3 /// </summary> 4 public class JsonSchema 5 { 6 private int RecursionCnt = 0; 7 private int RecursionCntM 阅读全文

posted @ 2020-06-08 19:46 庭前花满留晚照 阅读(1020) 评论(0) 推荐(0) 编辑

2019年12月5日

GetHashCode之于引用类型和值类型及其特性

摘要: GetHashCode 方法可由派生类型重写。如果 GetHashCode 未重写,则通过调用基类的 Object.GetHashCode 方法来计算引用类型的哈希代码。 引用类型:Object.GetHashCode方法会根据对象的引用计算哈希代码。若引用相等,则散列值一定相等,反之不一定成立。 阅读全文

posted @ 2019-12-05 18:58 庭前花满留晚照 阅读(307) 评论(0) 推荐(0) 编辑

2019年12月4日

ConcurrentDictionary源码概读

摘要: ConcurrentDictionary的数据结构主要由Tables和Node组成,其中Tables包括桶(Node,节点)数组、局部锁(Local lock)、每个锁保护的元素数量(PerLock)。Node包含用户实际操作的key和value,以及为实现链表数据结构的下一个节点(Next Nod 阅读全文

posted @ 2019-12-04 19:13 庭前花满留晚照 阅读(626) 评论(0) 推荐(0) 编辑

导航