/// <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> /// <param name="referer">Referer url to use for the token generation</param> /// <param name="useEncryption">If true then the token generation request will be encryted</param> public TokenProvider(String rootUrl, String username, String password, ISerializer serializer = null, String referer = "", ICryptoProvider cryptoProvider = null) { if (String.IsNullOrWhiteSpace(username) || String.IsNullOrWhiteSpace(password)) { System.Diagnostics.Debug.WriteLine("TokenProvider for '" + RootUrl + "' not initialized as username/password not supplied."); return; } Serializer = serializer ?? SerializerFactory.Get(); if (Serializer == null) { throw new ArgumentNullException("serializer", "Serializer has not been set."); } RootUrl = rootUrl.AsRootUrl(); CryptoProvider = cryptoProvider ?? CryptoProviderFactory.Get(); TokenRequest = new GenerateToken(username, password) { Referer = referer }; UserName = username; _httpClient = HttpClientFactory.Get(); System.Diagnostics.Debug.WriteLine("Created TokenProvider for " + RootUrl); }
internal TokenProvider(Func <ILog> log, string rootUrl, string username, string password, ISerializer serializer = null, string referer = "", ICryptoProvider cryptoProvider = null) { if (string.IsNullOrWhiteSpace(rootUrl)) { throw new ArgumentNullException(nameof(rootUrl), "rootUrl is null."); } if (string.IsNullOrWhiteSpace(username)) { throw new ArgumentNullException(nameof(username), "username is null."); } if (string.IsNullOrWhiteSpace(password)) { throw new ArgumentNullException(nameof(password), "password is null."); } Serializer = serializer ?? SerializerFactory.Get(); Guard.AgainstNullArgument("Serializer", Serializer); RootUrl = rootUrl.AsRootUrl(); CryptoProvider = cryptoProvider ?? CryptoProviderFactory.Get(); _httpClient = HttpClientFactory.Get(); TokenRequest = new GenerateToken(username, password) { Referer = referer }; UserName = username; _logger = log() ?? LogProvider.For <TokenProvider>(); _logger.DebugFormat("Created new token provider for {0}", RootUrl); }