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

石家庄哪家公司做网站好推广公司经营范围

石家庄哪家公司做网站好,推广公司经营范围,做网站一般用什么程序,请人做网站asp.net core 入口 验证token,但有的接口要跳过验证 在ASP.NET Core中,你可以使用中间件来验证token,并为特定的接口创建一个属性来标记是否跳过验证。以下是一个简化的例子: 创建一个自定义属性来标记是否跳过验证: public clas…

asp.net core 入口 验证token,但有的接口要跳过验证

在ASP.NET Core中,你可以使用中间件来验证token,并为特定的接口创建一个属性来标记是否跳过验证。以下是一个简化的例子:

  1. 创建一个自定义属性来标记是否跳过验证:
    public class SkipTokenValidationAttribute : Attribute
    {
        public bool Skip { get; set; } = false;
    }

  2. 创建中间件来验证token:
    public class TokenValidationMiddleware
    {
        private readonly RequestDelegate _next;
     
        public TokenValidationMiddleware(RequestDelegate next)
        {
            _next = next;
        }
     
        public async Task Invoke(HttpContext context)
        {
            var endpoint = context.Features.Get<IEndpointFeature>()?.Endpoint;
            if (endpoint != null)
            {
     var actionMethod = "";//[control]/[action]
     var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
     if (controllerActionDescriptor != null)
     {
         actionMethod = controllerActionDescriptor.AttributeRouteInfo?.Template;//.ControllerName;
     }
     if (context.Request.PathBase.Equals("", StringComparison.OrdinalIgnoreCase) && context.Request.Path.Equals("/", StringComparison.OrdinalIgnoreCase))
     {
         //访问域名(不包含其他地址信息),跳转到guest.html
         context.Response.Redirect("Admin/admin/guest.html");
     }
     else
     {

                var skipAttr = endpoint.Metadata.GetMetadata<SkipTokenValidationAttribute>();
                 if (skipAttr?.Skip != null && skipAttr?.Skip != true)
                {
                    var token = "";// context.Request.Query.
     if(context.Request.Query!=null && context.Request.Query.ContainsKey("token"))
     {
         token = context.Request.Query["token"].ToString().Trim();
     }
     if (context.Request.Form!=null && context.Request.Form.ContainsKey("token"))
     {
         token = context.Request.Form["token"].ToString().Trim();
     }
     if(!string.IsNullOrEmpty(token))
     {
         //验证token...
     }
     else
     {
         context.Response.StatusCode = 401;
         return;
     }
     // 验证token的逻辑
     //var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last();
     //if (token != null)
     //{
     //    // 验证token的逻辑
     //    // 如果token无效,返回未授权的错误
     //    context.Response.StatusCode = 401;
     //    return;
     //}
                }
            }
     
            await _next(context);
    }
        }
    }

  3. 注册中间件:在Startup.cs中的Configure方法中添加中间件(注意要写在app.UseRouting()之后):
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // 其他中间件配置...
     
        app.UseMiddleware<TokenValidationMiddleware>();
     
        // 其他中间件配置...
         添加自定义中间件用于处理域名跳转
    //    app.Use(async (context, next) =>
    //    {
    //        if (context.Request.PathBase.Equals("", StringComparison.OrdinalIgnoreCase) && context.Request.Path.Equals("/", StringComparison.OrdinalIgnoreCase))
    //        {
    //            //访问域名(不包含其他地址信息),跳转到guest.html
    //            context.Response.Redirect("Admin/admin/guest.html");
    //        }
    //        else
    //        {
    //            await next();
    //        }
    //    });

    }

  4. 使用SkipTokenValidationAttribute属性来标记那些不需要验证token的接口:
    //[ApiController] //有这个,好像接口字符参数都必须填写值
    [Route("[controller]")]
    [SkipTokenValidation]//控制下所有接口都要验证
     //[ApiExplorerSettings(IgnoreApi = true)]//在swagger上隐藏该控制器
    public class SkipTokenController : ControllerBase
    {
        // 这个接口会跳过token验证
        [HttpGet]
        [SkipTokenValidation(Skip = true)]
        public IActionResult SkipValidation()
        {
            return Ok("This endpoint is skipping token validation.");
        }
     
        // 这个接口需要token验证
        [HttpGet("validate")]
        //[ApiExplorerSettings(IgnoreApi = true)]//在swagger上隐藏该接口
        public IActionResult ValidateToken()
        {
            return Ok("This endpoint is requiring token validation.");
        }
    }

    以上代码展示了如何在ASP.NET Core中创建一个中间件来验证token,并根据接口是否需要跳过验证来处理请求。在实际应用中,你需要替换验证token的逻辑以满足你的安全需求

http://www.hrbkazy.com/news/36425.html

相关文章:

  • 网站建设找谁去哪里找需要推广的app
  • 青岛模板建站多少钱整站优化系统
  • 南宁网络营销策划推广公司深圳seo优化排名优化
  • 亚洲成成品网站源码网站建设全网营销
  • wordpress上传到又拍云seo 工具推荐
  • 现在个人都在哪个网站做外贸免费发外链
  • 免费域名分发网站网站运营及推广方案
  • 查询网站日流量南京今日新闻头条
  • 简单个人网页模板谷歌seo和百度区别
  • 网站企业制作软文代写公司
  • 简单个人网页制作淄博seo网络公司
  • app平台搭建步骤seo网站优化方案书
  • 网站开发整体流程新媒体运营工作是什么
  • 网站添加在线留言百度网页游戏排行榜
  • 共享办公都有哪些公司网站seo诊断报告
  • 一个空间怎么做多个网站厦门小鱼网
  • 大连网站开发培训怎样免费推广自己的网站
  • 做网站 英语微信营销的优势
  • 哪个网站可以做自己的网页怎么创建网站免费建立个人网站
  • 合肥市城乡城乡建设局网站互联网培训机构排名前十
  • 广厦建设集团官方网站网络营销产品策略分析
  • 做移动网站优化网站流量统计分析工具
  • 新乡百度网站推广工具买转发链接
  • 购物网站难做今天最火的新闻头条
  • 东莞微信网站建设更好百度店面定位怎么申请
  • 安徽网站优化南宁网络推广热线
  • 国外购物网站欣赏百度明星搜索量排行榜
  • wordpress 无法搜索结果优化建站seo门户
  • 上海网站建设联系电话移动端seo关键词优化
  • 南京网站设计公司济南兴田德润优惠吗seo对网络推广的作用是什么?