private async Task UpdateHttpClient(ICredentials credentials) { if (_httpHandler == null) { _httpHandler = await _messageHandlerFactory(); _httpClient = new HttpClient(_httpHandler.MessageHandler); _httpClient.Timeout = Timeout.InfiniteTimeSpan; // Create a new wrapper for ICredentials that can be modified _credentials = new CredentialHelper(); _httpHandler.ClientHandler.Credentials = _credentials; // Always take the credentials from the helper. _httpHandler.ClientHandler.UseDefaultCredentials = false; // Set user agent UserAgent.SetUserAgent(_httpClient); } // Modify the credentials on the current handler _credentials.Credentials = credentials; // Mark that auth has been updated _lastAuthId = Guid.NewGuid(); }
private static void AddOrUpdateGetCredentialsRequestHandler( IPlugin plugin, SourceRepository source, HttpHandlerResource httpHandlerResource) { plugin.Connection.MessageDispatcher.RequestHandlers.AddOrUpdate( MessageMethod.GetCredentials, () => new GetCredentialsRequestHandler( plugin, httpHandlerResource.ClientHandler?.Proxy, HttpHandlerResourceV3.CredentialService), existingHandler => { var handler = (GetCredentialsRequestHandler)existingHandler; handler.AddOrUpdateSourceRepository(source); return(handler); }); }
private static HttpHandlerResourceV3Provider CreateMockHttpHandlerResource(bool createResource) { var provider = new Mock <HttpHandlerResourceV3Provider>(); provider.Setup(x => x.Name) .Returns(nameof(HttpHandlerResourceV3Provider)); provider.Setup(x => x.ResourceType) .Returns(typeof(HttpHandlerResource)); HttpHandlerResource resource = null; if (createResource) { resource = Mock.Of <HttpHandlerResource>(); } var tryCreateResult = new Tuple <bool, INuGetResource>(resource != null, resource); provider.Setup(x => x.TryCreate(It.IsAny <SourceRepository>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(tryCreateResult)); return(provider.Object); }