Blog.Core
面向切面的缓存使用
拦截器BlogLogAOP 继承IInterceptor接口
实例化IInterceptor唯一方法
包含被拦截方法的信息
面向切面的缓存使用
事务拦截器BlogTranAOP 继承IInterceptor接口
实例化IInterceptor唯一方法
包含被拦截方法的信息
AOP的拦截方法
自定义缓存的key
object 转 string
颁发JWT字符串
解析
令牌
Id
角色
职能
中间件
原做为自定义授权中间件
先做检查 header token的使用
JWTToken生成类
获取基于JWT的Token
需要在登陆的时候配置
在startup中定义的参数
权限授权处理器
验证方案提供对象
构造函数注入
用户或角色或其他凭据实体,就像是订单详情一样
之前的名字是 Permission
用户或角色或其他凭据名称
请求Url
必要参数类,类似一个订单信息
继承 IAuthorizationRequirement,用于设计自定义权限处理器PermissionHandler
因为AuthorizationHandler 中的泛型参数 TRequirement 必须继承 IAuthorizationRequirement
用户权限集合,一个订单包含了很多详情,
同理,一个网站的认证发行中,也有很多权限详情(这里是Role和URL的关系)
无权限action
认证授权类型
请求路径
发行人
订阅人
过期时间
签名验证
构造
拒约请求的url
权限集合
声明类型
发行人
订阅人
签名验证实体
过期时间
静态全局 AutoMapper 配置文件
配置构造函数,用来创建关系映射
博客管理
构造函数
获取博客列表【无权限】
获取博客详情
获取详情【无权限】
获取博客测试信息 v2版本
添加博客【无权限】
删除博客
更新博客信息
apache jemeter 压力测试
更新接口
这是一个测试的控制器,主要为了测试基于Claim的验证机制
测试批量删除,如果是axios,记得要把数组格式化成 stringQuery
构造函数
获取 整体框架 文件
获取 Model 层文件
获取 IRepository 层文件
获取 IService 层文件
获取 Repository 层文件
获取 Services 层文件
图片管理
下载图片(支持中文字符)
上传图片,多文件,可以使用 postman 测试,
如果是单文件,可以 参数写 IFormFile file1
登录管理【无权限】
构造函数注入
获取JWT的方法1
获取JWT的方法2:给Nuxt提供
获取JWT的方法3:整个系统主要方法
请求刷新Token(以旧换新)
获取JWT的方法4:给 JSONP 测试
测试 MD5 加密字符串
接口管理
获取全部接口api
添加一条接口信息
更新接口信息
删除一条接口
SignalR send data
菜单管理
构造函数
获取菜单
查询树形 Table
父节点
关键字
添加一个菜单
保存菜单权限分配
获取菜单树
获取路由树
通过角色获取菜单【无权限】
更新菜单
删除菜单
角色管理
获取全部角色
添加角色
更新角色
删除角色
类别管理【无权限】
构造函数
获取Tibug所有分类
Tibug 管理
构造函数
获取Bug数据列表(带分页)
【无权限】
页数
专题类型
关键字
获取详情【无权限】
添加一个 BUG 【无权限】
更新 bug
删除 bug
用户管理
构造函数
获取全部用户
获取用户详情根据token
【无权限】
令牌
添加一个用户
更新用户与角色
删除用户
用户角色关系
构造函数
新建用户
新建Role
新建用户角色关系
Values控制器
ValuesController
Get方法
Get(int id)方法
测试参数是必填项
通过 HttpContext 获取用户信息
声明类型,默认 jti
to redirect by route template name.
route with template name.
测试 post 一个对象 + 独立参数
model实体类参数
独立参数
测试 post 参数
测试http请求 RestSharp Get
测试http请求 RestSharp Post
测试多库连接
Put方法
Delete方法
Db 启动服务
Automapper 启动服务
Cors 启动服务
Db 启动服务
Db 启动服务
Cors 启动服务
Cors 启动服务
MiniProfiler 启动服务
SqlSugar 启动服务
Swagger 启动服务
Summary:全局路由权限公约
Remarks:目的是针对不同的路由,采用不同的授权过滤器
如果 controller 上不加 [Authorize] 特性,默认都是 Permission 策略
否则,如果想特例其他授权机制的话,需要在 controller 上带上 [Authorize],然后再action上自定义授权即可,比如 [Authorize(Roles = "Admin")]
全局权限过滤器【无效】
全局异常错误日志
自定义返回格式
生产环境的消息
开发环境的消息
全局路由前缀公约
中间件
记录IP请求数据
自定义授权中间件
请求响应中间件
SignalR中间件
异常处理中间件
IP请求中间件
中间件
记录请求和响应数据
中间件
记录请求和响应数据
log4net 仓储库
自定义版本
Api接口版本 自定义
V1 版本
V2 版本
自定义路由 /api/{version}/[controler]/[action]
分组名称,是来实现接口 IApiDescriptionGroupNameProvider
自定义路由构造函数,继承基类路由
自定义版本+路由构造函数,继承基类路由