[DllImport("credui", EntryPoint="CredUIPromptForCredentialsW", CharSet = CharSet.Unicode)]
private static extern CredUIReturnCodes CredUIPromptForCredentials(ref CREDUI_INFO creditUR,
string targetName,
IntPtr reserved1,
int iError,
StringBuilder userName,
int maxUserName,
StringBuilder password,
int maxPassword,
ref int iSave,
CREDUI_FLAGS flags);
Declare Function CredUIPromptForCredentialsW Lib "credui.dll" (TODO) As TODO
CREDUI_FLAGS, CREDUI_INFO, CredUIReturnCodes
None.
Please add some!
const int MAX_USER_NAME = 100;
const int MAX_PASSWORD = 100;
const int MAX_DOMAIN = 100;
public static CredUIReturnCodes PromptForCredentials(
ref CREDUI_INFO creditUI,
string targetName,
int netError,
ref string userName,
ref string password,
ref bool save,
CREDUI_FLAGS flags)
{
int saveCredentials;
StringBuilder user = new StringBuilder(MAX_USER_NAME);
StringBuilder pwd = new StringBuilder(MAX_PASSWORD);
saveCredentials = Convert.ToInt32(save);
creditUI.cbSize = Marshal.SizeOf(creditUI);
CredUIReturnCodes result = CredUIPromptForCredentials(
ref creditUI,
targetName,
IntPtr.Zero,
netError,
user,
MAX_USER_NAME,
pwd,
MAX_PASSWORD,
ref saveCredentials,
flags);
save = Convert.ToBoolean(saveCredentials);
userName = user.ToString();
password = pwd.ToString();
return result;
}
string host = "Database Client";
CREDUI_INFO info = new CREDUI_INFO();
info.pszCaptionText = host;
info.pszMessageText = "Please Enter Your Enterprise ID";
CREDUI_FLAGS flags = CREDUI_FLAGS.GENERIC_CREDENTIALS |
CREDUI_FLAGS.SHOW_SAVE_CHECK_BOX |
CREDUI_FLAGS.ALWAYS_SHOW_UI |
CREDUI_FLAGS.EXPECT_CONFIRMATION;
bool savePwd = false;
CredUIReturnCodes result = PromptForCredentials(ref info, host, 0, ref username,
ref password, ref savePwd, flags);
TODO