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); }
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); }
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); }