/// <summary> /// Add Or Update /// </summary> public bool Add(Uri uri, string authType, NetworkCredential credential) { if (null == credential) { return(Remove(uri, authType)); } else { if (null == uri) { return(false); } NetworkCredentialRecord id = new NetworkCredentialRecord(uri, authType); bool result = true; m_Cache.AddOrUpdate( id, Clone(credential), (key, oldValue) => { result = false; return(Clone(credential)); }); return(result); } }
/// <summary> /// Obtain Credentials /// </summary> /// <param name="uri">Uri</param> /// <param name="authType">Authenication type</param> public NetworkCredential GetCredential(Uri uri, string authType) { NetworkCredentialRecord id = new NetworkCredentialRecord(uri, authType); if (m_Cache.TryGetValue(id, out NetworkCredential result)) { return(Clone(result)); } return(null); }
/// <summary> /// Remove /// </summary> public bool Remove(Uri uri, string authType) { NetworkCredentialRecord id = new NetworkCredentialRecord(uri, authType); return(m_Cache.TryRemove(id, out var _)); }