c# - 如何为代理通信的 Auth0 授权设置 User-Agent http-header
问题描述
我们正在设置一个新的 Asp.Net Core 3.0 Web 应用程序。在针对此 WebApp 使用 Auth0 进行身份验证时,该应用会尝试使用 HTTP GET 访问 .eu.auth0.com。要通过我们的公司代理访问此站点,该应用程序需要发送一个 User-Agent http 标头。
我的尝试是添加一个自定义 Http-Message-Handler,它将这个标头添加到授权后端的所有请求中。
public class CustomHttpMessageHandler : DelegatingHandler {
public CustomHttpMessageHandler() {
InnerHandler = new HttpClientHandler();
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
request.Headers.Add("User-Agent", "myApp/0.1.0");
return await base.SendAsync(request, cancellationToken);
}
}
此处理程序在 Startup.ConfigureServices() 中设置:
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options => {
options.SaveToken = true;
options.Authority = domain;
options.Audience = Configuration["Auth0:ApiIdentifier"];
options.BackchannelHttpHandler = new CustomHttpMessageHandler();
});
调试时,运行此代码并将用户代理添加到请求中。这里的问题是,应用程序(在 GET 之前)向 .eu.auth0.com 发送了一个 HTTP OPTION 请求,我无法修改该请求。
有没有办法为授权中间件设置这个 Http-Header?甚至在全球范围内?或者我可以为他们提供一个完整的自定义 Http-Client 吗?
解决方案
推荐阅读
- python - 如何使用 Keras(增强、拆分)预处理我的 ImageDataset
- javascript - Plotly 错误:初始点击重置缩放 UI 状态
- arrays - Swift:将项目附加到数组时出现问题
- javascript - 如何多次渲染一个元素
- php - 用 PHP 解析 XML,根据特定属性值打印标签值数组
- java - 无法在 Jersey 3.0.2 / Jetty 11.0.0 Rest web 服务中生成 XML 响应
- pine-script - 在 strategy.entry() 中使用 Pine-Script timestamp() 函数时遇到问题
- winapi - 当进程关闭时,Atoms、HEVENT 和使用 LoadImage 创建的 HBITMP 或 HICON 会自动关闭吗?
- javascript - 如何更改已在 JQuery 中选中的上一个复选框的值?
- azure - AKS 无法提取图像 - 大小验证失败