我使用 Serilog.Sinks.BrowserHttp ( https://github.com/nblumhardt/serilog-sinks-browserhttp ),我需要附加一个 http 消息处理程序。
我必须将 AuthorizationMessageHandler 附加到我的所有请求中,因为我使用的是活动目录身份验证。我使用 blazor wasm 独立(未托管)。将其添加为 messageHandler 的正确方法是什么?消息处理程序似乎被忽略了。
var levelSwitch = new LoggingLevelSwitch();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.BrowserHttp(endpointUrl: http://localhost:58871/api/ingest,
messageHandler: new AuthorizationMessageHandler())
.CreateLogger();
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
request.SetBrowserRequestCredentials(BrowserRequestCredentials.Include);
return base.SendAsync(request, cancellationToken);
}
}
还是我应该添加一个 defaultRequestHeaders?
var header = new Dictionary<string, string>()
{
{ "withCredentials", "true" },
};
var levelSwitch = new LoggingLevelSwitch();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.BrowserHttp(endpointUrl: http://localhost:58871/api/ingest,
defaultRequestHeaders: header)
.CreateLogger();