首页 > 其他分享 >252 Authorization Filter

252 Authorization Filter

时间:2024-06-04 18:59:30浏览次数:24  
标签:Task Edit Filter context 252 async public Authorization

示例

新建TokenAuthorizationFilter.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace CRUDExample.Filters.AuthorizationFilters
{
    public class TokenAuthorizationFilter : IAsyncAuthorizationFilter
    {

        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            if (context.HttpContext.Request.Cookies.ContainsKey("Auth-Key") == false)
            {
                context.Result = new StatusCodeResult(StatusCodes.Status401Unauthorized);
                return;
            }

            if (context.HttpContext.Request.Cookies["Auth-Key"] != "A100")
            {
                context.Result = new StatusCodeResult(StatusCodes.Status401Unauthorized);
                return;
            }
        }
    }
}

新建TokenResultFilter.cs(添加缓存)

using Microsoft.AspNetCore.Mvc.Filters;

namespace CRUDExample.Filters.ResourceFilters
{
    public class TokenResultFilter : IAsyncResultFilter
    {
        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            context.HttpContext.Response.Cookies.Append("Auth-Key", "A100");
            await next();

        }
    }
}

Edit Action HttpPost添加验证的Filter,Edit Action HttpGet添加缓存的Filter

[HttpPost]
[Route("[action]/{personId}")] //persons/edit/1
[TypeFilter(typeof(TokenAuthorizationFilter))]

public async Task<IActionResult> Edit(PersonUpdateRequest personUpdateRequest)

 [HttpGet]
 [Route("[action]/{personId}")] //persons/edit/1
 [TypeFilter(typeof(TokenResultFilter))]
 public async Task<IActionResult> Edit(Guid personId)

运行程序后可以正常Edit,如果去掉缓存Filter,点击Update后显示如下

Gitee获取源码:

https://gitee.com/huang_jianhua0101/asp.-net-core-8.git

标签:Task,Edit,Filter,context,252,async,public,Authorization
From: https://blog.csdn.net/KevinHuang2088/article/details/139451388

相关文章

  • 255 IAlwaysRunResultFilter
    示例新建PersonsAlwaysRunResultFilter.csusingMicrosoft.AspNetCore.Mvc.Filters;namespaceCRUDExample.Filters.ResultFilters{  publicclassPersonsAlwaysRunResultFilter:IAsyncAlwaysRunResultFilter  {    publicasyncTaskOnResult......
  • SpringSecurity6从入门到实战之Filter过滤器回顾
    SpringSecurity6从入门到实战之Filter过滤器回顾如果没有SpringSecurity这个框架,我们应该通过什么去实现客户端向服务端发送请求时,先检查用户是否登录,登录了才能访问.否则重定向到登录页面流程图如下官方文档:https://docs.spring.io/spring-security/reference/6.0......
  • SpringBootWeb 篇-深入了解 Filter 过滤器与 Interceptor 拦截器(实现登录校验 Filter
    ......
  • JavaWeb笔记整理+图解——Filter过滤器
    欢迎大家来到这一篇章——Filter过滤器监听器和过滤器都是JavaWeb服务器三大组件(Servlet、监听器、过滤器)之一,他们对于Web开发起到了不可缺少的作用。ps:想要补充Java知识的同学们可以移步我已经完结的JavaSE笔记,里面整理了大量详细的知识点和图解,可以帮你快速掌握Java编程的......
  • 2252416 黄子轩 源代码管理工具
    首先,GitHub是一个基于web的版本控制和代码管理的服务平台,它使用Git作为版本库的格式进行代码管理。我们可以将GitHub看作是一个巨大的代码仓库,我们可以在这个仓库中存储、共享和协作我们的代码。这样就可以省去我们小组间代码相互传来传去的麻烦。对于我们团队项目来说,GitHub有以......
  • 2252309-介绍主流源代码管理工具--Github(举例说明具体使用--旅行+兼职平台)
    一、Github介绍目录1、简介2、特点3、优点4、缺点5、使用教程6、举例二、详细介绍1、简介(1)Github的产生:软件开发过程中会因源代码引发各种繁琐的问题,如版本备份(费空间,费时间)、版本混乱(因版本备份过多造成混乱,难以找回正确的想要版本)、代码冲突(团队开发过程中多人操作同......
  • Neural Filters:着色
    Ps菜单:滤镜/NeuralFilters/颜色/着色NeuralFilters/COLOR/Colorize着色Colorize滤镜可以对黑白照片自动着色,也为彩色照片简化色彩提供了有力的支持。“着色”滤镜利用深度学习技术,对输入的黑白或彩色照片进行分析,识别图像中的物体、背景和其他元素。然后,根据图像内容和......
  • Neural Filters:照片恢复
    Ps菜单:滤镜/NeuralFilters/恢复/照片恢复NeuralFilters/RESTORATION/Photo Restoration照片恢复 Photo Restoration借助AI强大功能快速恢复旧照片,提高对比度、增强细节、消除划痕。将此滤镜与着色相结合以进一步增强效果。“照片恢复”滤镜利用深度学习和图像处理......
  • Excel无法filter出#Name?
    Excelfilter list里显示有错误数据#name? 但是filter此数据总是不显示内容 为什么呢,我也没找到原因,但是通过排序可以让它显示出来 临时解决问题,具体原因没查到,等待大神 ......
  • .Net6 web API (ResouceFilter-ActionFilter)
    前沿net中的ResouceFilter和ActionFilter 有啥主要区别呢其实2者都是过滤器 在ASP.NETCore中,ResourceFilter和ActionFilter是两种不同类型的过滤器,用于在请求处理过程中执行额外的逻辑。它们可以用于对请求和响应进行处理、修改或拦截,以实现诸如授权、日志记录......