C#调用Windows安全中心进行用户身份验证
Chrome密码管理器,显示密码,会调用Windows安全中心验证用户身份,用户可以通过指纹、面孔、PIN、或者输入密码的方式验证,验证通过就显示密码,验证不通过就不显示。
C# 不太清楚如何实现这样的功能,如果有知道的大牛可以给个Demo。
以下为可能有用的资料:
https://learn.microsoft.com/en-us/windows/win32/api/wincred/nf-wincred-creduipromptforwindowscredentialsa
[DllImport("credui.dll", EntryPoint = "CredUIPromptForWindowsCredentials", CharSet = CharSet.Unicode)] public static extern int CredUIPromptForWindowsCredentials(ref CREDUI_INFO pUiInfo, int dwAuthError, ref uint pulAuthPackage, IntPtr pvInAuthBuffer, uint ulInAuthBufferSize, out IntPtr ppvOutAuthBuffer, out uint pulOutAuthBufferSize, ref bool pfSave, int dwFlags); [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CREDUI_INFO { /// <summary>此结构的大小。</summary> public int cbSize; /// <summary>指定对话框的父窗口的句柄。 与父窗口相关的对话框是模式的。 如果此成员为 NULL,则桌面是对话框的父窗口。</summary> public IntPtr hwndParent; /// <summary>指向包含要显示在对话框中的简短消息的字符串的指针,此字符串的长度不应超过CREDUI_MAX_MESSAGE_LENGTH。</summary> public string pszMessageText; /// <summary>指向包含对话框标题的字符串的指针,此字符串的长度不应超过CREDUI_MAX_CAPTION_LENGTH。</summary> public string pszCaptionText; /// <summary>(忽略)要显示在对话框中的位图,如果此成员为NULL,则使用默认位图。位图大小限制为 320*60 像素。</summary> public IntPtr hbmBanner; }