【问题标题】:Windows credentials prompt in custom WPF dialog自定义 WPF 对话框中的 Windows 凭据提示
【发布时间】:2012-03-19 20:07:33
【问题描述】:

问。如何在 WPF 中重用 Windows credentials dialog (WinForms32) 提供的安全功能?

头脑风暴(不确定是否可行):

  1. 在我自己的 WPF 对话框中托管 WinForms32 对话框。 MSDN 有一个article,它解释了如何托管 WinForms 控件(即文本框等)而不是 WinForms 对话框。是的,这会很丑,但我们现在不担心外观。

  2. 提供包装 WinForms 对话框的 WPF GUI。登录后,WPF 用户名文本框和 WPF SecurePassword 文本框在幕后转移到它们的 WinForms 等效项。敏感数据的移动可能会带来安全风险(但有些人可能会认为攻击者有很多其他方法可以窃取您的密码)。

  3. 将 WinForms 用户名和密码文本框移动到 WPF 对话框(“重新设置”现有文本框)。

感谢任何建议/cmets(包括对我的想法的批评)!

【问题讨论】:

  • 我通常不会问为什么,但是为了安全,我必须... 为什么? (用户不是已经登录了吗?)
  • 不,不一定。此应用程序的登录域不一定与用于登录 Windows 的域相同。该应用程序允许切换身份验证服务器。
  • 您链接到的Windows credentials dialog 文章显示了所有背景代码。为什么不能直接将其放入自定义 Window?
  • 那篇文章没有说明如何“将其放入自定义窗口”。我希望它是那么简单。
  • 大声笑,对不起。他们在那里拥有所有需要的 pinvoke 功能。使用用户、密码等控件创建一个自定义 WPF 窗口,然后点击 OK。

标签: wpf winforms windows-7 credential-providers


【解决方案1】:

您可以像在常规 WinForms 应用程序中一样在 WPF 应用程序中显示 WinForms 对话框,并且它可以正常工作。例如 WPF 没有 FolderBrowserDialog 但我们使用此对话框的 WinForms 版本,它工作正常。

【讨论】:

  • 实际上,我想避免弹出一个与应用程序其他部分外观不同的对话框。
  • 我决定让对话框自己显示而不是嵌入它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
相关资源
最近更新 更多