/// <summary> /// Get credentials for user from credential manager. /// </summary> /// <param name="filter">A filter for the target name, for example DOMAIN*. If null or empty returns all credentials.</param> /// <param name="flags">Flags for the enumeration.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>The list of credentials.</returns> public static NtResult <IEnumerable <Credential> > GetCredentials(string filter, CredentialEnumerateFlags flags, bool throw_on_error) { if (string.IsNullOrEmpty(filter)) { filter = null; } return(SecurityNativeMethods.CredEnumerate(flags.HasFlagSet(CredentialEnumerateFlags.AllCredentials) ? null : filter, flags, out int count, out SafeCredBuffer buffer).CreateWin32Result(throw_on_error, () => ParseCredentials(count, buffer))); }