ASP.NET CORE MVC中如果设置JWT请求头

1.在做JWT验证时,通过将token放在请求头部


   beforeSend: function (XMLHttpRequest) {
                    XMLHttpRequest.setRequestHeader(......);
                },

2.ASP.NET CORE MVC中,不通过ajax点击按钮进行提交,是怎样设置请求头(将验证信息下发到后台)的呢?

<form asp-controller="MyControls" asp-action="Update" id="main" method="post" data-ajax="true" data-ajax-complete="completed" data-ajax-success="afterSuccess" data-ajax-failure="failed">


引用 皆我百晓生 小程序回复内容作答:
对于在ASP.NET Core MVC中的非Ajax请求,可以通过添加中间件或在控制器中手动设置请求头来发送验证信息。

  1. 中间件方式:
    在Startup.cs文件的Configure方法中添加以下代码,以设置全局的请求头:

    app.Use((context, next) =>
    {
     // 设置请求头
     context.Request.Headers["Authorization"] = "Bearer " + jwtToken;
    
     return next();
    });
    

    这样,在每个请求处理之前,都会将JWT token添加到请求头部。

  2. 控制器方式:
    您可以在控制器的方法中手动设置请求头,如下所示:

    [HttpPost]
    public IActionResult Update()
    {
     // 设置请求头
     HttpContext.Request.Headers["Authorization"] = "Bearer " + jwtToken;
    
     // 处理逻辑
     // ...
    
     return View();
    }
    

    在该方法中,您可以使用HttpContext对象的Request属性来获取请求对象,并设置请求头中的授权信息。

这两种方式都可以在非Ajax请求中设置请求头,以便将验证信息发送到后台。根据您的具体需求,选择适合您的方式。

希望能帮助到您!如果您有任何其他问题,请随时提问。

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^