private static HttpMessageHandler CreateMessageHandler(ODataClientSettings settings) { if (settings.OnCreateMessageHandler != null) { return settings.OnCreateMessageHandler(); } else { var clientHandler = new HttpClientHandler(); // Perform this test to prevent failure to access Credentials/PreAuthenticate properties on SL5 if (settings.Credentials != null) { clientHandler.Credentials = settings.Credentials; if (clientHandler.SupportsPreAuthenticate()) clientHandler.PreAuthenticate = true; } if (settings.OnApplyClientHandler != null) { settings.OnApplyClientHandler(clientHandler); } return clientHandler; } }
/// <summary> /// Create a token provider to authenticate against ArcGIS Server /// </summary> /// <param name="rootUrl">Made up of scheme://host:port/site</param> /// <param name="username">ArcGIS Server user name</param> /// <param name="password">ArcGIS Server user password</param> /// <param name="serializer">Used to (de)serialize requests and responses</param> public TokenProvider(String rootUrl, String username, String password, ISerializer serializer) { if (String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password)) { System.Diagnostics.Debug.WriteLine("TokenProvider for '" + RootUrl + "' not initialized as username/password not supplied."); return; } if (serializer == null) throw new ArgumentNullException("serializer", "Serializer has not been set."); RootUrl = rootUrl.AsRootUrl(); Serializer = serializer; TokenRequest = new GenerateToken(username, password); _httpClientHandler = new HttpClientHandler(); if (_httpClientHandler.SupportsAutomaticDecompression) _httpClientHandler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; if (_httpClientHandler.SupportsUseProxy()) _httpClientHandler.UseProxy = true; if (_httpClientHandler.SupportsAllowAutoRedirect()) _httpClientHandler.AllowAutoRedirect = true; if (_httpClientHandler.SupportsPreAuthenticate()) _httpClientHandler.PreAuthenticate = true; _httpClient = new HttpClient(_httpClientHandler); _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); System.Diagnostics.Debug.WriteLine("Created TokenProvider for " + RootUrl); }
/// <summary> /// Create a token provider to authenticate against ArcGIS Server /// </summary> /// <param name="rootUrl">Made up of scheme://host:port/site</param> /// <param name="username">ArcGIS Server user name</param> /// <param name="password">ArcGIS Server user password</param> /// <param name="serializer">Used to (de)serialize requests and responses</param> public TokenProvider(String rootUrl, String username, String password, ISerializer serializer) { RootUrl = rootUrl.AsRootUrl(); Serializer = serializer; if (Serializer == null) throw new ArgumentNullException("serializer", "Serializer has not been set."); TokenRequest = new GenerateToken(username, password); _httpClientHandler = new HttpClientHandler(); if (_httpClientHandler.SupportsAutomaticDecompression) _httpClientHandler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; if (_httpClientHandler.SupportsUseProxy()) _httpClientHandler.UseProxy = true; if (_httpClientHandler.SupportsAllowAutoRedirect()) _httpClientHandler.AllowAutoRedirect = true; if (_httpClientHandler.SupportsPreAuthenticate()) _httpClientHandler.PreAuthenticate = true; _httpClient = new HttpClient(_httpClientHandler); _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); }