Flurl разумно использует HttpClientHandler для каждого домена, поэтому вы не хотите устанавливать UseDefaultCredentials при каждом запуске. Вместо этого вы можете изменить HttpClientFactory, чтобы он возвращал тот, который настроен для использования UseDefaultCredentials.
public class UseDefaultCredentialsClientFactory : DefaultHttpClientFactory
{
public override HttpMessageHandler CreateMessageHandler()
{
return new HttpClientHandler { UseDefaultCredentials = true };
}
}
Затем необходимо указать Flurl использовать эту фабрику для доменов, для которых вы хотите использовать проверку подлинности Windows.
public static class FlurlConfiguration
{
public static void ConfigureDomainForDefaultCredentials(string url)
{
FlurlHttp.ConfigureClient(url, cli =>
cli.Settings.HttpClientFactory = new UseDefaultCredentialsClientFactory());
}
}
Тогда вам просто нужно вызвать это один раз при запуске для каждого домена. Для ASP.NET хорошим выбором будет метод Application_Start в вашем глобальном классе приложений.
FlurlConfiguration.ConfigureDomainForDefaultCredentials("https://example.com");
FlurlConfiguration.ConfigureDomainForDefaultCredentials("http://services.example.com");
Благодарность достается Тодду Меньеру за объяснение мне .