美文网首页
asp.net core 巧用 app.MapWhen 区分业务

asp.net core 巧用 app.MapWhen 区分业务

作者: Codmowa | 来源:发表于2019-04-28 14:52 被阅读0次
    最近在搞一个支付相关的api 其中需要有两套认证的逻辑. 一个是公司自己的,一个是支付中心的callback

    公司自己的api比较多, callback 却只需要一个路径就可以. 所以单独套两个 asp.net core 的认证框架有点多余
    而且 也不止一个支付中心,所以会有好几个认证方式.
    那么就让 支付中心 跳过 asp.net core 的 authentication 就好了

    解决办法(ps: 调用顺序很重要,涉及到 asp.net core 管道相关的知识)
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
           app.MapWhen(x => x.Request.Path.StartsWithSegments("/callback"), subapp =>
            {
                subapp.UseMvc();
            });
            app.UseAuthentication();
            app.UseMvc();
        }
    

    然后Controller 里面就要像下面这样设置

         [Route("callback/[controller]")]
         [ApiController]
         public class RecieveController : ControllerBase
         {
         }

    相关文章

      网友评论

          本文标题:asp.net core 巧用 app.MapWhen 区分业务

          本文链接:https://www.haomeiwen.com/subject/egidnqtx.html