Example #1
0
        /// <summary>
        /// Retrieves all ArcGISRuntime credentials stored in the Credential Locker.
        /// </summary>
        public static IEnumerable <Credential> RetrieveAll()
        {
            var passwordVault = new PasswordVault();
            var credentials   = new List <Credential>();

            foreach (PasswordCredential passwordCredential in passwordVault.RetrieveAll().Where(pc => pc.Resource.StartsWith(ResourcePrefix)))
            {
                Credential credential = null;
                passwordCredential.RetrievePassword();
                string userName      = passwordCredential.UserName;
                string passwordValue = passwordCredential.Password; // value stored as password
                string serviceUrl    = passwordCredential.Resource.Substring(ResourcePrefix.Length);

                // Create the credential depending on the type
                if (passwordValue.StartsWith(PasswordPrefix))
                {
                    string password = passwordValue.Substring(PasswordPrefix.Length);
                    credential = new ArcGISTokenCredential {
                        ServiceUri = serviceUrl, UserName = userName, Password = password, Token = "dummy"
                    };                                                                                                                            // dummy to remove once the token will be refreshed pro actively
                }
                else if (passwordValue.StartsWith(OAuthRefreshTokenPrefix))
                {
                    string refreshToken = passwordValue.Substring(OAuthRefreshTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri        = serviceUrl,
                        UserName          = userName,
                        OAuthRefreshToken = refreshToken,
                        Token             = "dummy"
                    };
                }
                else if (passwordValue.StartsWith(OAuthAccessTokenPrefix))
                {
                    string token = passwordValue.Substring(OAuthAccessTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName   = userName,
                        Token      = token,
                    };
                }
                else if (passwordValue.StartsWith(NetworkCredentialPasswordPrefix))
                {
                    string password = passwordValue.Substring(NetworkCredentialPasswordPrefix.Length);
                    credential = new ArcGISNetworkCredential {
                        ServiceUri = serviceUrl, Credentials = new NetworkCredential(userName, password)
                    };
                }

                if (credential != null)
                {
                    credentials.Add(credential);
                }
            }
            return(credentials);
        }
        /// <summary>
        /// Retrieves all ArcGISRuntime credentials stored in the isolated storage.
        /// </summary>
        public static IEnumerable<Credential>  RetrieveAll()
        {
            var credentials = new List<Credential>();
            foreach(var cachedCredential in GetCachedCredentials())
            {
                Credential credential = null;
                string userName = cachedCredential.UserName;
                string passwordValue = cachedCredential.Password; // value stored as password
                string serviceUrl = cachedCredential.Url;

                // Create the credential depending on the type
                if (passwordValue.StartsWith(PasswordPrefix))
                {
                    string password = passwordValue.Substring(PasswordPrefix.Length);
                    credential = new ArcGISTokenCredential { ServiceUri = serviceUrl, UserName = userName, Password = password, Token = "dummy" }; // dummy to remove once the token will be refreshed pro actively
                }
                else if (passwordValue.StartsWith(OAuthRefreshTokenPrefix))
                {
                    string refreshToken = passwordValue.Substring(OAuthRefreshTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName = userName,
                        OAuthRefreshToken = refreshToken,
                        Token = "dummy"
                    };
                }
                else if (passwordValue.StartsWith(OAuthAccessTokenPrefix))
                {
                    string token = passwordValue.Substring(OAuthAccessTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName = userName,
                        Token = token,
                    };
                }
                else if (passwordValue.StartsWith(NetworkCredentialPasswordPrefix))
                {
                    string password = passwordValue.Substring(NetworkCredentialPasswordPrefix.Length);
                    credential = new ArcGISNetworkCredential { ServiceUri = serviceUrl, Credentials = new NetworkCredential(userName, password) };
                }
                else if (passwordValue.StartsWith(CertificateCredentialPrefix))
                {
                    string serial = passwordValue.Substring(CertificateCredentialPrefix.Length);
                    var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                    X509Certificate2Collection certificates;
                    try
                    {
                        store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                        // Find certificate by serial number
                        certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, true);
                    }
                    catch (Exception)
                    {
                        certificates = null;
                    }
                    finally
                    {
                        store.Close();
                    }
                    if (certificates != null && certificates.Count > 0)
                        credential = new CertificateCredential(certificates[0]) { ServiceUri = serviceUrl };
                }

                if (credential != null)
                {
                    credentials.Add(credential);
                }
            }
            return credentials;
        }
Example #3
0
        /// <summary>
        /// Retrieves all ArcGISRuntime credentials stored in the isolated storage.
        /// </summary>
        public static IEnumerable <Credential> RetrieveAll()
        {
            var credentials = new List <Credential>();

            foreach (var cachedCredential in GetCachedCredentials())
            {
                Credential credential    = null;
                string     userName      = cachedCredential.UserName;
                string     passwordValue = cachedCredential.Password; // value stored as password
                string     serviceUrl    = cachedCredential.Url;

                // Create the credential depending on the type
                if (passwordValue.StartsWith(PasswordPrefix))
                {
                    string password = passwordValue.Substring(PasswordPrefix.Length);
                    credential = new ArcGISTokenCredential {
                        ServiceUri = serviceUrl, UserName = userName, Password = password, Token = "dummy"
                    };                                                                                                                             // dummy to remove once the token will be refreshed pro actively
                }
                else if (passwordValue.StartsWith(OAuthRefreshTokenPrefix))
                {
                    string refreshToken = passwordValue.Substring(OAuthRefreshTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri        = serviceUrl,
                        UserName          = userName,
                        OAuthRefreshToken = refreshToken,
                        Token             = "dummy"
                    };
                }
                else if (passwordValue.StartsWith(OAuthAccessTokenPrefix))
                {
                    string token = passwordValue.Substring(OAuthAccessTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName   = userName,
                        Token      = token,
                    };
                }
                else if (passwordValue.StartsWith(NetworkCredentialPasswordPrefix))
                {
                    string password = passwordValue.Substring(NetworkCredentialPasswordPrefix.Length);
                    credential = new ArcGISNetworkCredential {
                        ServiceUri = serviceUrl, Credentials = new NetworkCredential(userName, password)
                    };
                }
                else if (passwordValue.StartsWith(CertificateCredentialPrefix))
                {
                    string serial = passwordValue.Substring(CertificateCredentialPrefix.Length);
                    var    store  = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                    X509Certificate2Collection certificates;
                    try
                    {
                        store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                        // Find certificate by serial number
                        certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, true);
                    }
                    catch (Exception)
                    {
                        certificates = null;
                    }
                    finally
                    {
                        store.Close();
                    }
                    if (certificates != null && certificates.Count > 0)
                    {
                        credential = new CertificateCredential(certificates[0])
                        {
                            ServiceUri = serviceUrl
                        }
                    }
                    ;
                }

                if (credential != null)
                {
                    credentials.Add(credential);
                }
            }
            return(credentials);
        }
 private void UpdateIdentityManager(TokenCredential token)
 {
     var arcGisTokenCredential = new ArcGISTokenCredential {Token = token.Token, ServiceUri = DEFAULT_SERVER_URL};
     IdentityManager.Current.AddCredential(arcGisTokenCredential);
 }
        /// <summary>
        /// Retrieves all ArcGISRuntime credentials stored in the Credential Locker.
        /// </summary>
        public static IEnumerable<Credential>  RetrieveAll()
        {
            var passwordVault = new PasswordVault();
            var credentials = new List<Credential>();
            foreach (PasswordCredential passwordCredential in passwordVault.RetrieveAll().Where(pc => pc.Resource.StartsWith(ResourcePrefix)))
            {
                Credential credential = null;
                passwordCredential.RetrievePassword();
                string userName = passwordCredential.UserName;
                string passwordValue = passwordCredential.Password; // value stored as password
                string serviceUrl = passwordCredential.Resource.Substring(ResourcePrefix.Length);

                // Create the credential depending on the type
                if (passwordValue.StartsWith(PasswordPrefix))
                {
                    string password = passwordValue.Substring(PasswordPrefix.Length);
                    credential = new ArcGISTokenCredential { ServiceUri = serviceUrl, UserName = userName, Password = password, Token = "dummy"}; // dummy to remove once the token will be refreshed pro actively
                }
                else if (passwordValue.StartsWith(OAuthRefreshTokenPrefix))
                {
                    string refreshToken = passwordValue.Substring(OAuthRefreshTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName = userName,
                        OAuthRefreshToken = refreshToken,
                        Token = "dummy"
                    };
                }
                else if (passwordValue.StartsWith(OAuthAccessTokenPrefix))
                {
                    string token = passwordValue.Substring(OAuthAccessTokenPrefix.Length);
                    credential = new OAuthTokenCredential
                    {
                        ServiceUri = serviceUrl,
                        UserName = userName,
                        Token = token,
                    };
                }
                else if (passwordValue.StartsWith(NetworkCredentialPasswordPrefix))
                {
                    string password = passwordValue.Substring(NetworkCredentialPasswordPrefix.Length);
                    credential = new ArcGISNetworkCredential {ServiceUri = serviceUrl, Credentials = new NetworkCredential(userName, password)};
                }

                if (credential != null)
                {
                    credentials.Add(credential);
                }
            }
            return credentials;
        }