Windows客户端应用的登录对话框

9
有没有Win32函数可以调用来显示Windows登录对话框?
例如,Internet Explorer和Visual Studio的Team Explorer在访问网站时都会显示凭据对话框-我该如何显示该对话框?
我有一个.NET Windows客户端应用程序,在与Web服务通信时使用已登录的Windows用户标识。服务使用该用户ID确定是谁在调用服务并决定他们有权限看到什么。
我想添加一个命令,允许当前用户有效地"运行为",其中他们可以输入另一个用户的用户名/密码,然后我们将应用程序作为他们执行。
我可以构建自定义对话框并使用LoginUser()函数,但我宁愿使用一些"官方"的东西。

我知道有一个标准登录对话框的API,因为我看到其他应用程序使用它。但是我没有找到它的任何信息。我找到了一些关于WNetVerifyPassword API函数的引用,但在msdn或pinvoke.net上都没有文档记录。 - Joe White
2个回答

8

太好了。P/invoke.net在这里有它:http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html。再加上LogonUser就足以完成我需要的登录了。谢谢! - Paul Stovell
您可以使用SecureString来存储密码,方法是创建一个SecureString并更改pinvoke方法参数以使用IntPtr,并调用Marshal.SecureStringToBSTR(passwordSecureString)。 - Paul Stovell

0

我认为你卡在了创建自己的对话框上。不过,让它看起来正式并不难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接