如何在凭据对话框中显示域名(使用CredUIPromptForWindowsCredentials)?

问题描述 投票:0回答:1

我使用CredUIPromptForWindowsCredentials获取用户凭据,但是如果用户像这样[[email protected]进行登录,则凭据对话框不会显示域名。如图所示,如何在凭据对话框中显示域名?

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9CdUt2di5qcGcifQ==” alt =“凭据对话框图片”>“ >>

public static NetworkCredential ShowCredDialog(string caption, string message, NetworkCredential defaultCreds = null) { var credui = new CREDUI_INFO { pszCaptionText = caption, pszMessageText = message, }; credui.cbSize = Marshal.SizeOf(credui); uint authPackage = 0; var save = false; CreateInAuthBuffer(defaultCreds, out var inAuthBuffer, out var inAuthSize); var result = CredUIPromptForWindowsCredentials( ref credui, 0, ref authPackage, inAuthBuffer, (uint)inAuthSize, out var outCredBuffer, out var outCredSize, ref save, 1 /* Generic */); if (result != 0) { return null; } var maxUserName = 100; var maxDomain = 100; var maxPassword = 100; var usernameBuf = new StringBuilder(maxUserName); var domainBuf = new StringBuilder(maxDomain); var passwordBuf = new StringBuilder(maxPassword); var packAuthRes = CredUnPackAuthenticationBuffer(0, outCredBuffer, outCredSize, usernameBuf, ref maxUserName, domainBuf, ref maxDomain, passwordBuf, ref maxPassword); var userName = usernameBuf.ToString(); var domain = domainBuf.ToString(); var password = passwordBuf.ToString(); CoTaskMemFree(outCredBuffer); return new NetworkCredential { UserName = userName, Domain = domain, Password = password, }; } [DllImport("credui.dll", CharSet = CharSet.Auto)] private static extern int CredUIPromptForWindowsCredentials(ref CREDUI_INFO notUsedHere, int authError, ref uint authPackage, IntPtr InAuthBuffer, uint InAuthBufferSize, out IntPtr refOutAuthBuffer, out uint refOutAuthBufferSize, ref bool fSave, int flags);

我使用CredUIPromptForWindowsCredentials获取用户凭据,但是如果用户像mydomain \ UserName或[email protected]这样的登录名登录,则凭据对话框不会显示域名。如何显示...
c# credentials windows-security
1个回答
0
投票
我需要更改参数:-在

CredUIPromptForWindowsCredentials

© www.soinside.com 2019 - 2024. All rights reserved.