当前位置: 首页 > news >正文

asp.net web api 用户身份验证

        前后端分离的开发中,应用服务需要进行用户身份的验证才允许访问数据。实现的方法很简单。创建一个webapi项目。在App_Start目录下找到WebApiConfig.cs, 在里面增加一个实现类。

  public static class WebApiConfig{public static void Register(HttpConfiguration config){// Web API 配置和服务config.Filters.Add(new CustomAuthorize());// Web API 路由config.MapHttpAttributeRoutes();config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional });}public class CustomAuthorize : AuthorizationFilterAttribute{public override void OnAuthorization(HttpActionContext actionContext){//如果用户的Action带有AllowAnonymousAttribute,则不用检测if (actionContext.ActionDescriptor.GetCustomAttributes<System.Web.Http.AllowAnonymousAttribute>().Any()){return;}app 接口检测 object au = actionContext.Request.Headers.Authorization;if (au == null){actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, new { Ret = 4002, Msg = "Token错误!" });}else if (!Redis.haskey(au.ToString())){actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, new { Ret = 4008, Msg = "Token超时!" });}}}}

Controller 类的实现:

 [RoutePrefix("api/v1")]public class ValuesController : ApiController{[AllowAnonymous]  //匿名访问[Route("getData1"), HttpPost]public JObject getData1([FromBody] JObject data){return data;}//登录访问[Route("getData2"), HttpPost]public JObject getData2([FromBody] JObject data){return data;}}

http://www.lryc.cn/news/302980.html

相关文章:

  • 3DTile是不是没有坐标的选择?
  • 数据采集三防平板丨三防平板电脑丨停车场应用
  • 解决git push时的too_many_commits提示
  • GPT-4助力我们突破思维定势
  • 【前端工程化面试题】什么是 CI/CD
  • kafka的安装,用于数据库同步数据
  • Bean 的作用域你知道么 ?
  • Windows 使设置更改立即生效——并行发送广播消息
  • PostgreSQL使用session_exec和file_fdw实现失败次数锁定用户策略
  • Jmeter实现阶梯式线程增加的压测
  • Linux----防火墙之保存规则
  • spring-orm:6 HibernateJpaVendorAdapter源码解析
  • php捕获Fatal error错误与异常处理
  • PyCharm 调试过程中控制台 (Console) 窗口内运行命令 - 实时获取中间状态
  • MacBook Pro如何安装rust编程环境
  • SparkUI任务启动参数介绍(148个参数)
  • nginx 安装
  • 手撕扩散模型(一)| 训练部分——前向扩散,反向预测代码全解析
  • linux 防火墙
  • Go应用性能分析实战
  • MySQL的索引类型
  • picker选择器-年月日选择
  • 【LeetCode-494】目标和(回溯动归)
  • 力扣 188. 买卖股票的最佳时机 IV
  • 【Go语言】Go项目工程管理
  • 美容小程序:让预约更简单,服务更贴心
  • 【递归】:原理、应用与案例解析 ,助你深入理解递归核心思想
  • 【 Maven 】花式玩法之多模块项目
  • LeetCode 热题 100 Day01
  • [vscode]vue js部分结尾加分号