如何使用 c# 从 Windows 窗体向用户显示默认的 Windows 身份验证提示?

Posted

技术标签:

【中文标题】如何使用 c# 从 Windows 窗体向用户显示默认的 Windows 身份验证提示?【英文标题】:How to show the user the default windows authentication prompt from a windows form using c#? 【发布时间】:2011-10-12 18:33:44 【问题描述】:

我认为这将是一种非常常见的做法,但我很难找到有关如何在 c# 中向用户显示默认 Windows 身份验证凭据提示的任何内容?

用户将使用此 Windows 窗体应用程序连接到不同域上的 Web 服务,因此我不能只传递默认凭据。这些用户将有一个单独的登录名来访问 Web 服务,我希望他们得到默认 Windows 提示符的提示,然后我可以将他们的凭据传递给 Web 服务。

谢谢!

【问题讨论】:

【参考方案1】:

我相信不久前有人回答了这个问题。您可以使用凭证管理 API。这是一个link,其中包含一个可以帮助您入门的代码示例。

【讨论】:

【参考方案2】:

您需要在 Vista 及更高版本上 P/invoke CredUIPromptForWindowsCredentials,或在 XP 上 P/invoke CredUIPromptForCredentials

【讨论】:

非常感谢,你能提供一个使用这个的例子吗?另外,我不想在这里验证用户/与 AD 交谈。我只是想向用户询问他们的信任,并使用它们来调用网络服务。 从 Patrick 给你的链接中的代码开始。你应该接受他的回答。这是最好的。

以上是关于如何使用 c# 从 Windows 窗体向用户显示默认的 Windows 身份验证提示?的主要内容,如果未能解决你的问题,请参考以下文章

c# windows 窗体 如何 设置菜单的权限

c# winform 向用户显示具有指定所有者的窗体

C# Windows 窗体使用 OracleDataAdapter 从系统数据表向 Oracle 表插入行

你如何在 Windows 窗体上显示动画 GIF (c#)

c#如何创建/设置windows窗体用户控件属性获取简单消息弹窗

使用 C# windows 窗体向 Ms Access 数据库插入新记录时出现语法错误