调用windows api弹出身份验证对话框,使用CredUIPromptForCredentials
DWORD WINAPI CredUIPromptForCredentials(
_In_opt_ PCREDUI_INFO pUiInfo,
_In_ PCTSTR pszTargetName,
_In_ PCtxtHandle Reserved,
_In_opt_ DWORD dwAuthError,
_Inout_ PCTSTR pszUserName,
_In_ ULONG ulUserNameMaxChars,
_Inout_ PCTSTR pszPassword,
_In_ ULONG ulPasswordMaxChars,
_Inout_ PBOOL pfSave,
_In_ DWORD dwFlags
);
参数具体参见MSDN。
在我看来,其实此API的实际作用仅仅是弹出对话框,及返回输入的用户名和密码等信息而已,真正的验证还是要我们自己编代码去验证。
另外,参数pszTargetName的值无论为何值(当然不能为NULL),用户名及密码为何值,其他信息正确的话,函数均会返回NO_ERROR。
因此,当函数返回NO_ERROR之后,则由开发者自己去验证用户及密码的正确性。