Ejemplo n.º 1
0
        public IEnumerable <string> GetUsernames(string host)
        {
            if (this._objectAlreadyDisposed)
            {
                throw new ObjectDisposedException("CredentialStore");
            }
            List <string> list = new List <string>();

            if (File.Exists(this._credentialFilePath))
            {
                FileStream fileStream = (FileStream)null;
                try
                {
                    fileStream = this.OpenFile(FileShare.Read);
                    foreach (XmlNode node in this.LoadCredentialsDocument((Stream)fileStream).SelectNodes("/Credentials/passwordEntry"))
                    {
                        if (CredentialStore.IsValidPasswordEntryNode(node) && node["host"].InnerText.Equals(host, StringComparison.OrdinalIgnoreCase))
                        {
                            list.Add(node["username"].InnerText);
                        }
                    }
                }
                finally
                {
                    if (fileStream != null)
                    {
                        fileStream.Dispose();
                    }
                }
            }
            return((IEnumerable <string>)list);
        }
Ejemplo n.º 2
0
        private static XmlNode GetCredentialNode(XmlDocument credentialsXmlDocument, string host, string username, bool isUsernameCaseSensitive)
        {
            XmlNode xmlNode = (XmlNode)null;

            foreach (XmlNode node in credentialsXmlDocument.SelectNodes("/Credentials/passwordEntry"))
            {
                if (CredentialStore.IsValidPasswordEntryNode(node) && node["host"].InnerText.Equals(host, StringComparison.OrdinalIgnoreCase))
                {
                    string           innerText      = node["username"].InnerText;
                    StringComparison comparisonType = isUsernameCaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
                    if (string.Equals(innerText, username, comparisonType))
                    {
                        xmlNode = node;
                        break;
                    }
                }
            }
            return(xmlNode);
        }
Ejemplo n.º 3
0
        public IEnumerable <string> GetHosts()
        {
            if (this._objectAlreadyDisposed)
            {
                throw new ObjectDisposedException("CredentialStore");
            }
            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            if (File.Exists(this._credentialFilePath))
            {
                FileStream fileStream = (FileStream)null;
                try
                {
                    fileStream = this.OpenFile(FileShare.Read);
                    foreach (XmlNode node in this.LoadCredentialsDocument((Stream)fileStream).SelectNodes("/Credentials/passwordEntry"))
                    {
                        if (CredentialStore.IsValidPasswordEntryNode(node))
                        {
                            string innerText = node["host"].InnerText;
                            string key       = innerText.ToLower();
                            if (!dictionary.ContainsKey(key))
                            {
                                dictionary[key] = innerText;
                            }
                        }
                    }
                }
                finally
                {
                    if (fileStream != null)
                    {
                        fileStream.Dispose();
                    }
                }
            }
            return((IEnumerable <string>)dictionary.Values);
        }