【问题标题】:Populate HTTP request headers with custom header in .Net Core 3.0 middleware在 .Net Core 3.0 中间件中使用自定义标头填充 HTTP 请求标头
【发布时间】:2020-09-07 19:18:51
【问题描述】:

是否可以在中间件中使用自定义标头填充请求标头?我的目标是调用已实现基本身份验证的外部 rest api。所以在后端代码中保留 API 机密会很好。

我已经尝试了所有可能在 HTTP 上下文中向请求标头添加标头的方法,但似乎比我之前想的要难一些。

修改响应头没有问题,也许请求头有这种方式?

【问题讨论】:

    标签: c# .net asp.net-core .net-core


    【解决方案1】:

    这里修改请求和响应是有区别的。

    由于你调用的是一个 rest api,你需要注入一个 IHttpClientFactory > 创建一个客户端 > 通过 appsettings.json 将 auth 标头添加到它(例如)

    你可以使用Typed Clients,可以这样配置:

    services.AddHttpClient<GithubClient>(c => { c.DefaultRequestHeaders.Add("Bearer", "token"); });
    

    您可以使用DefaultRequestHeaders 属性从上面的配置中添加您的身份验证标头,然后在您的类型化服务中注入一个HttpClient,该服务将负责调用您的rest api。

    文档中提供了有关此主题的所有内容。见here

    【讨论】:

    • 嗨 HMZ。感谢您的回答。将使用 AXIOS 从客户端调用 API。正如我所看到的,没有 HTTPClient 实例是不可能的......
    • @EduardSurovij 嗯,这是一个重要的信息,你的问题应该忽略!最安全的方法是将令牌存储在后端,然后在您的服务器上调用一个操作来调用其余 api,除非不能保证令牌的安全性。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多