目录

  • 权限背景
  • 传统的授权方式
  • 鉴权-授权
  • Filter多种注册
  • 扩展Filter支持依赖注入
    • 自定义
  • Filter执行特点

权限背景

开发的很多功能页面;如果没有任何拦截,没有任何门槛;
来一个权限认证;有权限就可以访问,否则就拒绝掉;

  1. 一般就是登陆
  2. 用户名+密码登陆一下(在服务器或者浏览器做点标记,针对当前做记录)
  3. 在访问页面的时候;就验证是否登陆过,还可以通过当前用户信息做一些数据验证

传统的授权方式

鉴权-授权

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多种注册

  1. 中括号标记
  2. TypeFilter
  3. ServiceFilter
    可以放到实体类或方法上。
    // 如果想要控制Filter的执行顺序怎么办?//使用typeFilter/ServiceFilter的时候可以执行Order;Order值越小 优先执行[ServiceFilter(typeof(ControllerActionFilterAttribute), Order = -1)][TypeFilter(typeof(ControllerActionFilterAttribute), Order = -1)] //注册控制器[Authorize] ///第四步,表示当前Action 要支持鉴权授权

扩展Filter支持依赖注入

.NET5 Filter支持依赖注入

  1. TypeFilter
  2. 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扩展定制相关推荐

  1. CodeGen融合核心扩展定制文件

    CodeGen融合核心扩展定制文件 融合核心定制文件 Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization. ...

  2. 第12章 Spring AOP之扩展篇

    第12章 Spring AOP之扩展篇 本章内容 有关公开当前调用的代理对象的探讨 有关公开当前调用的代理对象的探讨 注:有关公开当前调用的代理对象的探讨这句话很机械,可以这么理解:把当前目标对象所依 ...

  3. php twig扩展,Symfony2基础教程之添加Twig的Filter扩展

    在Symfony2中添加Twig是个非常简单的事情,在安装sonata-media-bundle的时候 , 发现dev版本没有看到一个叫"number_format_decimal" ...

  4. JIRA扩展定制入门知识分享,附Github代码库

    JIRA是一款优秀的项目管理系统,功能全面,配置灵活,权限方案完善,可扩展.可定制. 总结分享JIRA和ScriptRunner结合的插件扩展方法: 通过代码实例演示JIRA组件调用方法 覆盖多个功能 ...

  5. 重磅!2020年微软开发者大会落幕,.NET迎来新机遇!

    两天前微软举行了首个线上Build大会,而开发者成为大会里唯一的主角.和所有技术公司一样,开发者对于微软来说,同样也越来越重要了.如同血肉相依的关系,谁也离不开谁.在这次大会上,开发者是最大的宠儿,成 ...

  6. 通过WCF Extension定制扩展WCF行为

    功能介绍 当我们需要扩展WCF的功能,或者需要实现某些特定的功能,我们必须应用WCF的扩展定制功能(WCF extension),WCF framework提供了丰富的可扩展性,其提供的可扩展接口如下 ...

  7. 如何通过扩展WCF来定制和扩展WCF行为

    当我们需要扩展WCF的功能,或者需要实现某些特定的功能,我们必须应用WCF的扩展定制功能(WCF extension),WCF framework提供了丰富的可扩展性,其提供的可扩展接口如下所示: 1 ...

  8. .NET MVC5简介(四)Filter和AuthorizeAttribute权限验证

    在webform中,验证的流程大致如下图: 在AOP中: 在Filter中: AuthorizeAttribute权限验证 登录后有权限控制,有的页面是需要用户登录才能访问的,需要在访问页面增加一个验 ...

  9. MOSN 多协议扩展开发实践

    Service Mesh 是当今云原生的关键部分,蚂蚁已经在生产环境完成了大规模的落地,但是业界整体 Service Mesh 改造程度还不高.其中平稳的进行 Mesh 化改造是可以对已上线的业务进行 ...

最新文章

  1. 30K程序员的简述:如何成为高级开发人员
  2. 怎么把网页源码家入hexo博客_一款被大厂选用的 Hexo 博客主题
  3. lookup函数和vlookup_LOOKUP函数与VLOOKUP函数,你总会喜欢一个的
  4. 数据库相关中间件收录集
  5. 研发协同平台持续交付之代理服务实践
  6. HTML5新的解析顺序,HTML5新表单新功能解析
  7. Java笔记-使用logback按天生成日志并按等级进行分类
  8. android 4.3 模拟器,模拟器上的Android 4.3
  9. PHP数组按字符串长度排序
  10. 乞讨网站,要饭网,个人要饭网,在线要饭网站;含socket 通信;双端支付源码 ;源码
  11. 认识电路板上的电子元件
  12. 怎么将苹果手机屏幕投屏到电脑上
  13. Java实现文件上传和下载
  14. python分布式 集群_python分布式框架rq的使用
  15. greedy算法计算金字塔分数问题
  16. android dialog 隐藏键盘,android dialog 隐藏虚拟按键
  17. wpf之Binging类
  18. 计算机状态oxcoooooe9,win7 system文件损坏修复办法
  19. DirectShow编程(1)- DirectShow介绍
  20. linux运维之批量升级

热门文章

  1. c++ 多态 学习总结3 虚析构和纯虚析构
  2. Iwfu-安卓Gesture手势(2)-实现多点触控控制图片的放大缩小。
  3. with open() as f 用法
  4. java开发进度条怎么监控,上传文件时监控读取进度,显示进度条
  5. 深度学习VGG模型核心拆解
  6. 一个类的例子--员工工资
  7. 远程会议概述及其技术演变(电话会议,视频会议,网络会议)
  8. 《学术规范与论文写作》or《如何写好科研论文》--清华大学,【论文写作语法练习】
  9. 网页设计软件列表HTML,免费的网页设计软件有哪些
  10. 单片机c语言的按键程序,新按键程序