一张图看懂ASP.NET MVC5认证和授权过滤器的执行顺序
2023-09-11 14:14:18 时间
一张图看懂ASP.NET MVC5认证和授权过滤器的执行顺序
IAuthenticationFilter是MVC5中的新特性,它有2个关键方法:
- OnAuthentication
- OnAuthenticationChallenge
当IAuthenticationFilter和IAuthorizationFilter结合使用时,流程看似比较复杂:
- 根据路由选择Controller和Action
- 如果设置了IAuthenticationFilter,则会调用OnAuthentication方法
- 在OnAuthentication中如果设置了context的Result,则会直接跳转到OnAuthenticationChallenge方法。
- 如果OnAuthentication中没有设置context的Result,则交由IAuthorizationFilter处理(如果没有定义IAuthorizationFilter,则进入Action方法)。
- 如果设置了IAuthorizationFilter,则执行授权逻辑调用OnAuthorization方法
- 在OnAuthorization中如果设置了context的Result,则会直接跳转到IAuthenticationFilter的OnAuthenticationChallenge方法。
- 如果OnAuthorization中没有设置对应context的Result,则进入Action方法。
- IAuthenticationFilter的OnAuthenticationChallenge方法始终会在ActionResult的ExecuteResult执行之前运行。
相关文章
- 记一次ASP.NET MVC性能优化(实际项目中)
- WCF 无法激活服务,由于它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性
- 学习ASP.NET Core Blazor编程系列九——服务器端校验
- 学习ASP.NET MVC(十)——排序
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
- 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
- .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
- Aspose.Words for .NET使用教程(九):将文档转换为字节数组和HTML
- Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法
- Asp.Net中替换JSON中主键内容的函数(很简单,示例+说明)
- ASP.NET MVC用存储过程批量添加修改数据
- 第一节:ASP.NET开发环境配置
- C#/WPF/.NET 找到的程序集清单定义与程序集引用不匹配
- asp.net Form认证超时后,在iframe中跳转问题
- asp.net webform中的ext.net使用
- asp.net mvc int[] 和 string[] 自定义数组绑定
- ASP.NET本质论第一章网站应用程序学习笔记1
- 非对称认证方式 可以用在 asp.net webapi 的安全机制里面
- IIS-真正解决ASP.NET每一个页面首次访问超级慢的问题
- ASP.NET quartz 定时任务
- ASP.NET 网面的调用方式: IsPostBack, IsCallBack, IsCrossPagePostBack.
- C# ASP.NET Forms身份认证