Gre*_*som 4 .net c# windows credentials
我使用CredUIPromptForCredentials来提示用户输入凭据然后传递给Web服务.
提示符显示"记住我的密码"选项,以便可以使用以前使用的值填充用户名和密码.
当出现提示并且预先填写凭据时,在我从下拉列表中实际选择用户名之前,我无法继续.
这是我看到的屏幕:

单击"确定"只会显示示例提示,但如果我从下拉列表中手动选择"Greg",则可以继续.
这是我正在使用的代码:
StringBuilder userPassword = new StringBuilder(), userID = new StringBuilder();
CREDUI_INFO credUI = new CREDUI_INFO();
credUI.cbSize = Marshal.SizeOf(credUI);
bool save = true;
CREDUI_FLAGS flags = CREDUI_FLAGS.ALWAYS_SHOW_UI | CREDUI_FLAGS.GENERIC_CREDENTIALS
| CREDUI_FLAGS.SHOW_SAVE_CHECK_BOX ;
//Display password prompt:
CredUIReturnCodes returnCode = CredUIPromptForCredentials
(ref credUI, this.serverName, IntPtr.Zero, 0, userID, 100, userPassword, 100, ref save, flags);
Run Code Online (Sandbox Code Playgroud)
操作系统是Windows 7和Server 2008 r2.
我创建了一个完整但简单的示例应用程序,可以从https://docs.google.com/open?id=0BxSAZ9JlU2w9VHZWWFBjVEhTNG02N1Q4WkFrUkhDUQ下载进行测试.
我打算尝试回答你的问题,但你自己解决得太快了.
但是,在阅读CredUIPromptForCredentials上的文档时,我注意到建议您在Windows 7和Server 2008上使用CredUIPromptForWindowsCredentials.
在Google搜索中,我找到了这个优秀的免费类库,其中包含几个本机API的包装器,包括使用CredUIPromptForWindowsCredentials API显示凭据对话框的完整示例.
| 归档时间: |
|
| 查看次数: |
5496 次 |
| 最近记录: |