asp.net-core - 如何在 Swagger UI 中包含 X-XSRF-TOKEN header ?

标签 asp.net-core swagger csrf swagger-ui swashbuckle

我有一个 .NET Core 3.1 Web API,我想为其添加 XSRF 保护。因此,我现在需要在所有端点上的 X-XSRF-TOKEN HTTP header 中添加防伪 token ,如 here 中所述。 。 JavaScript 客户端通过点击 /antiforgerytoken 端点获取 token ,该端点设置包含该 token 的 XSRF-TOKEN cookie。这一切都很好,但正如人们所期望的那样,“尝试一下!” Swagger UI 中的功能不再起作用,因为请求缺少 X-XSRF-TOKEN HTTP header 。有没有办法让 SwaggerUI 自动调用 /antiforgerytoken 端点并将 token 包含在正在执行的请求中?

最佳答案

在 Swagger UI 上,可以通过在配置上设置 requestInterceptor 来支持这一点,该函数是拦截和修改传出请求(包括“Try it out”请求)的函数。请参阅this comment在 Swagger UI 存储库和 README 中关于 Swagger UI 配置。

但是,自最新稳定版本 (5.6.3) 起,Swashbuckle.AspNetCore.SwaggerUI 尚不支持在 C# 中设置 requestInterceptor。有this PR添加了对拦截器的支持,并且已合并但尚未发布。因此,如果您使用的是 Swashbuckle.AspNetCore.SwaggerUI,您现在的选择是等待下一个版本,或者在下一个正式版本之前从源代码构建本地版本。

关于asp.net-core - 如何在 Swagger UI 中包含 X-XSRF-TOKEN header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66035690/

相关文章:

asp.net-core - Asp.Net Core中间件路径字符串startswithsegments问题

c# - 我应该如何在 ASP.NET Core 中为具有多个 URI 端点的资源实现 REST API Controller ?

asp.net-web-api - 为 ASP.NET Core Controller 自动生成 TypeScript 客户端代码

javascript - 如何在 swagger 中设置路由参数的数据类型?

swagger - Swagger 创建部分

php - Laravel 5 : Handle exceptions when request wants JSON

python - CSRF token 干扰 TDD - 是否有存储 csrf 输出的变量?

c# - Azure AD - 从 token 获取客户端 secret 描述

c# - 使用 Azure Function (.NET Core) 下载文件

java - 这些 XSRF 保护也适用于 RequestFactory 吗?