public async Task HttpClientHandler_Authentication_Succeeds(string authenticateHeader, bool result) { if (PlatformDetection.IsWindowsNanoServer) { // TODO: #28065: Fix failing authentication test cases on different httpclienthandlers. return; } // Digest authentication does not work with domain credentials on CurlHandler. This is blocked by the behavior of LibCurl. NetworkCredential credentials = (IsCurlHandler && authenticateHeader.ToLowerInvariant().Contains("digest")) ? s_credentialsNoDomain : s_credentials; var options = new LoopbackServer.Options { Domain = Domain, Username = Username, Password = Password }; await LoopbackServer.CreateServerAsync(async (server, url) => { string serverAuthenticateHeader = $"WWW-Authenticate: {authenticateHeader}\r\n"; HttpClientHandler handler = CreateHttpClientHandler(); Task serverTask = result ? server.AcceptConnectionPerformAuthenticationAndCloseAsync(serverAuthenticateHeader) : server.AcceptConnectionSendResponseAndCloseAsync(HttpStatusCode.Unauthorized, serverAuthenticateHeader); await TestHelper.WhenAllCompletedOrAnyFailedWithTimeout(TestHelper.PassingTestTimeoutMilliseconds, CreateAndValidateRequest(handler, url, result ? HttpStatusCode.OK : HttpStatusCode.Unauthorized, credentials), serverTask); }, options); }
public async Task HttpClientHandler_Authentication_Succeeds(string authenticateHeader, bool result) { if (PlatformDetection.IsWindowsNanoServer) { return; } var options = new LoopbackServer.Options { Domain = Domain, Username = Username, Password = Password }; await LoopbackServer.CreateServerAsync(async (server, url) => { string serverAuthenticateHeader = $"WWW-Authenticate: {authenticateHeader}\r\n"; HttpClientHandler handler = CreateHttpClientHandler(); Task serverTask = result ? server.AcceptConnectionPerformAuthenticationAndCloseAsync(serverAuthenticateHeader) : server.AcceptConnectionSendResponseAndCloseAsync(HttpStatusCode.Unauthorized, serverAuthenticateHeader); await TestHelper.WhenAllCompletedOrAnyFailedWithTimeout(TestHelper.PassingTestTimeoutMilliseconds, CreateAndValidateRequest(handler, url, result ? HttpStatusCode.OK : HttpStatusCode.Unauthorized, s_credentials), serverTask); }, options); }