27:NET5 AOP-Filter扩展定制
目录
- 权限背景
- 传统的授权方式
- 鉴权-授权
- Filter多种注册
- 扩展Filter支持依赖注入
- 自定义
- Filter执行特点
权限背景
开发的很多功能页面;如果没有任何拦截,没有任何门槛;
来一个权限认证;有权限就可以访问,否则就拒绝掉;
- 一般就是登陆
- 用户名+密码登陆一下(在服务器或者浏览器做点标记,针对当前做记录)
- 在访问页面的时候;就验证是否登陆过,还可以通过当前用户信息做一些数据验证
传统的授权方式
鉴权-授权
Configure方法,注册
app.UseAuthentication();//鉴权,检测有没有登录,登录的是谁,赋值给Userapp.UseAuthorization();//授权 检测有没有权限,是否能够访问后续的页面功能
ConfigureServices方法(鉴权授权)
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>{options.LoginPath = new PathString("/Main/Login"); //如果授权失败,就跳转到这个路径去中//options.AccessDeniedPath = new PathString("/Home/Privacy");});//用cookie的方式验证,顺便
授权的时候: 需要根据用户的信息,进一步去数据库中做一些判断;
这么办?
可以支持不同角色,可以支持不同的策略;
下一篇博客再讲
Filter多种注册
- 中括号标记
- TypeFilter
- ServiceFilter
可以放到实体类或方法上。
// 如果想要控制Filter的执行顺序怎么办?//使用typeFilter/ServiceFilter的时候可以执行Order;Order值越小 优先执行[ServiceFilter(typeof(ControllerActionFilterAttribute), Order = -1)][TypeFilter(typeof(ControllerActionFilterAttribute), Order = -1)] //注册控制器[Authorize] ///第四步,表示当前Action 要支持鉴权授权
扩展Filter支持依赖注入
.NET5 Filter支持依赖注入
- TypeFilter
- ServiceFilter
自定义
public class CustomFilterTypeAttribute : Attribute, IFilterFactory, IOrderedFilter{private Type _Type = null;public CustomFilterTypeAttribute(Type type){this._Type = type;}public bool IsReusable => true;public int Order => -1;public IFilterMetadata CreateInstance(IServiceProvider serviceProvider){var rsult = (IFilterMetadata)serviceProvider.GetService(_Type);return rsult;}}
Filter执行特点
相当于俄罗斯套娃,最外层至最内,再由最内到最外
27:NET5 AOP-Filter扩展定制相关推荐
- CodeGen融合核心扩展定制文件
CodeGen融合核心扩展定制文件 融合核心定制文件 Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization. ...
- 第12章 Spring AOP之扩展篇
第12章 Spring AOP之扩展篇 本章内容 有关公开当前调用的代理对象的探讨 有关公开当前调用的代理对象的探讨 注:有关公开当前调用的代理对象的探讨这句话很机械,可以这么理解:把当前目标对象所依 ...
- php twig扩展,Symfony2基础教程之添加Twig的Filter扩展
在Symfony2中添加Twig是个非常简单的事情,在安装sonata-media-bundle的时候 , 发现dev版本没有看到一个叫"number_format_decimal" ...
- JIRA扩展定制入门知识分享,附Github代码库
JIRA是一款优秀的项目管理系统,功能全面,配置灵活,权限方案完善,可扩展.可定制. 总结分享JIRA和ScriptRunner结合的插件扩展方法: 通过代码实例演示JIRA组件调用方法 覆盖多个功能 ...
- 重磅!2020年微软开发者大会落幕,.NET迎来新机遇!
两天前微软举行了首个线上Build大会,而开发者成为大会里唯一的主角.和所有技术公司一样,开发者对于微软来说,同样也越来越重要了.如同血肉相依的关系,谁也离不开谁.在这次大会上,开发者是最大的宠儿,成 ...
- 通过WCF Extension定制扩展WCF行为
功能介绍 当我们需要扩展WCF的功能,或者需要实现某些特定的功能,我们必须应用WCF的扩展定制功能(WCF extension),WCF framework提供了丰富的可扩展性,其提供的可扩展接口如下 ...
- 如何通过扩展WCF来定制和扩展WCF行为
当我们需要扩展WCF的功能,或者需要实现某些特定的功能,我们必须应用WCF的扩展定制功能(WCF extension),WCF framework提供了丰富的可扩展性,其提供的可扩展接口如下所示: 1 ...
- .NET MVC5简介(四)Filter和AuthorizeAttribute权限验证
在webform中,验证的流程大致如下图: 在AOP中: 在Filter中: AuthorizeAttribute权限验证 登录后有权限控制,有的页面是需要用户登录才能访问的,需要在访问页面增加一个验 ...
- MOSN 多协议扩展开发实践
Service Mesh 是当今云原生的关键部分,蚂蚁已经在生产环境完成了大规模的落地,但是业界整体 Service Mesh 改造程度还不高.其中平稳的进行 Mesh 化改造是可以对已上线的业务进行 ...
最新文章
- 30K程序员的简述:如何成为高级开发人员
- 怎么把网页源码家入hexo博客_一款被大厂选用的 Hexo 博客主题
- lookup函数和vlookup_LOOKUP函数与VLOOKUP函数,你总会喜欢一个的
- 数据库相关中间件收录集
- 研发协同平台持续交付之代理服务实践
- HTML5新的解析顺序,HTML5新表单新功能解析
- Java笔记-使用logback按天生成日志并按等级进行分类
- android 4.3 模拟器,模拟器上的Android 4.3
- PHP数组按字符串长度排序
- 乞讨网站,要饭网,个人要饭网,在线要饭网站;含socket 通信;双端支付源码 ;源码
- 认识电路板上的电子元件
- 怎么将苹果手机屏幕投屏到电脑上
- Java实现文件上传和下载
- python分布式 集群_python分布式框架rq的使用
- greedy算法计算金字塔分数问题
- android dialog 隐藏键盘,android dialog 隐藏虚拟按键
- wpf之Binging类
- 计算机状态oxcoooooe9,win7 system文件损坏修复办法
- DirectShow编程(1)- DirectShow介绍
- linux运维之批量升级