专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

.net core如何做全局拦截器

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:52:04       共计:3650 浏览

这里我们来写一段代码拦截全局请求里的token,并将token解析成一个用户信息回传到每个方法


   public class FilterController: ActionFilterAttribute

   {

           public override void OnActionExecuting(ActionExecutingContext context)

           {

               //拦截全局里是否带了token

               if (string.IsNullOrEmpty(context.HttpContext.Request.Query["token"]))

               {

                   context.Result = new JsonResult(

                       //该类是KeeSoft框架里自带的一个返回结果集

                       new KeeSoft.Core.ResponseMessage()

                       {

                           Status = KeeSoft.Core.ResponseStatus.ERROR.ToString(),

                           Text = "token缺失"

                       }

                   );

               }

   

               //假设有这么类可以将token解析成用户基本信息

               KeeSoft.Mini.Utils.User user =

                   new KeeSoft.Mini.Utils.User(context.HttpContext.Request.Query["token"]);

   

               //接着我们将这个user实例注册到控制器的方法里,之后你在控制器里命名带有user的参数,

               //将自动转成 KeeSoft.Mini.Utils.User类型的实例

               context.ActionArguments["user"] = user;

           }

   }


有个拦截类,下一步就是将该类注入的全局应用中


   public void ConfigureServices(IServiceCollection services)

   {

      //在这里你已经拦截器FilterController注入到全局请求中

      services.AddMvc(options=> {

          options.Filters.Add<FilterController>();

      });

   }


可以用上面两端代码做个demo



版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:如何在 ASP.NET Core 中实现全局异常拦截 | ·下一条:c# netcore 发送http请求并接收返回数据

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有