public void ConfigureRequest(RavenConnectionStringOptions options, WebRequest request)
{
if (RequestTimeoutInMs.HasValue)
request.Timeout = RequestTimeoutInMs.Value;
if (options.ApiKey == null)
{
request.Credentials = options.Credentials ?? CredentialCache.DefaultNetworkCredentials;
return;
}
var webRequestEventArgs = new WebRequestEventArgs { Request = request };
AbstractAuthenticator existingAuthenticator;
if (authenticators.TryGetValue(GetCacheKey(options), out existingAuthenticator))
{
existingAuthenticator.ConfigureRequest(this, webRequestEventArgs);
}
else
{
var basicAuthenticator = new BasicAuthenticator(options.ApiKey, enableBasicAuthenticationOverUnsecuredHttp: false);
var securedAuthenticator = new SecuredAuthenticator(options.ApiKey);
basicAuthenticator.ConfigureRequest(this, webRequestEventArgs);
securedAuthenticator.ConfigureRequest(this, webRequestEventArgs);
}
}