首页 > 其他分享 >.net core WebApi 控制器使用特性校验是否已经登录

.net core WebApi 控制器使用特性校验是否已经登录

时间:2023-07-25 10:23:20浏览次数:44  
标签:WebApi core 登录 校验 OperateCode ApiAuthorizeAction token context net

实现 ApiAuthorizeAction 自定义类:

public class ApiAuthorizeAction : Attribute,IAuthorizationFilter

{

  public void OnAuthorization(AuthorizationFilterContext context)
  {
    if (context == null)
      return;
    var token = context.HttpContext.Request.Headers["token"];
    if (string.IsNullOrWhiteSpace(token))
    {
      context.Result = new ApiResult(OperateCode.Api_无效的access_token,"请求头token不可以为空");//OperateCode为自定义的返回code,可以自行替换
      return;
    }
    var redisData = RedisHelper.StringGet(token);//redis缓存,存储登录用户信息 使用token作为key
    if (string.IsNullOrWhiteSpace(redisData))
    {
      context.Result = new ApiResult(OperateCode.Api_无效的access_token, "无效的授权信息或者授权信息已经过期");
      return;
    }
  }

}

在控制器中使用:

[ApiController]
[Route("api/[controller]/[action]")]
[ApiAuthorizeAction]//api登录校验
public class AdminUserDataController : BaseApiController //举例

原理:在每次进行API访问时会优先进入 ApiAuthorizeAction.OnAuthorization 中进行登录校验,校验传入的token是否合法。也可以通过该方法进行权限的校验扩展

标签:WebApi,core,登录,校验,OperateCode,ApiAuthorizeAction,token,context,net
From: https://www.cnblogs.com/yeshuanyi/p/17579084.html

相关文章

  • Ethernet协议下,触摸屏如何远距离无线控制PLC?
    想要实现触摸屏通过RJ45口无线连接200SMARTPLC,需要准备以下几种设备:●西门子PLC型号:S7-200Smart×2台●触摸屏:威纶通TK8071IP×1台●欧美系PLC无线通讯终端:DTD418MB×3块●主从关系:1主2从●通讯接口:RJ45接口然后将这几种设备分别接线。首先是触摸屏与DTD418MB接线,用一......
  • visual studio 2022 安装net旧版本(net framework4.0和4.5)
    visualstudio2022安装net旧版本(netframework4.0和4.5)问题:VisualStudio2022安装程序中单个组件中没有.netframework4.0或者.netframework4.5的问题,NETSDK下载Download.NETSDKsforVisualStudio下载没有4.5和4.0的开发包 其他Net版本直接在下载适用于VisualS......
  • POJ 3694 Network
    POJ3694Network一、题目大意\(n\)个点,\(m\)个边,连通图。点与点之间通过边连接,如果切断某个边使得有点与其他点连接断开(连通分支增加),则称这种边为桥梁(离散上叫割边)。接下来有\(Q\)个操作,每操作一次,也就是切断某条边后,输出当前存在的桥梁数量。二、样例分析我们看这个4......
  • [回馈]ASP.NET Core MVC开发实战之商城系统(二)
    经过一段时间的准备,新的一期【ASP.NETCoreMVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页商品类型,banner条,友情链接等功能的开发,今天继续讲解首页的降价促销,新品爆款等内容,仅供学习分享使用,如有不足之处,还请指......
  • 深入讲解Kubernetes架构-垃圾收集
    垃圾收集(GarbageCollection)是Kubernetes用于清理集群资源的各种机制的统称。垃圾收集允许系统清理如下资源:终止的Pod已完成的Job不再存在属主引用的对象未使用的容器和容器镜像动态制备的、StorageClass回收策略为Delete的PV卷阻滞或者过期的CertificateSigningRequest......
  • 一文搞定Kubernetes,零基础到上手
    文章目录1.Kubernetes简介1.1应用部署方式演变1.2kubernetes简介1.3kubernetes组件1.4kubernetes概念2.kubernetes集群环境搭建2.1kubernetes集群介绍2.2实验准备环境2.3系统初始化2.4部署Kubernetes集群2.5测试kubernetes集群3.资源管理3.1资源管理介绍3.2YAML语言......
  • ResNet18实现手写数字识别
    项目结构 ResNet18模型搭建fromtorchimportnnfromtorch.nn.functionalimportreluclassBaseBlock(nn.Module):def__init__(self,in_channels,out_channels,stride):super(BaseBlock,self).__init__()self.conv1=nn.Conv2d(in_ch......
  • ImageNet-1K压缩20倍,Top-1精度首超60%:大规模数据集蒸馏转折点
    前言 该工作是目前唯一实现了大规模高分辨率数据集蒸馏的框架。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南】......
  • kubernets(k8s) 部署1.23.6版本
    kubernets(k8s)部署1.23.6版本环境准备环境介绍操作系统:CentOSLinuxrelease7.6.1810(Core)k8s组件版本:1.23.6docker版本:Dockerversion24.0.4,build3713ee12核CPU、2G内存、20G硬盘节点:(本实验采用虚拟机)k8s-master172.16.100.130    k8s-node1172.16.......
  • 使用Autofac进行服务注册,适用版本.Net6(程序集、泛型)
    具体的也可以去参考官网:https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html首先在Program.cs所属的层中引用nuget包:Autofac.Extensions.DependencyInjectionnuget网址:https://www.nuget.org/packages 可以使用NuGet包管理器进行搜索安装在Program.cs中......