0

我使用 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();
4

0 回答 0