【问题标题】:Custom GUI for Credential Provider凭据提供程序的自定义 GUI
【发布时间】:2013-04-17 04:55:13
【问题描述】:

我已经围绕 OpenCV/EmguCV 设计了一个面部识别算法(还没有被打败!)

现在,我显然想用它来登录我的电脑。看来,最好的方法是实现一个自定义凭据提供程序(如 Windows 8 提供的图片锁)。但据我所知,凭证提供者无法定义自定义 GUI(我需要),不得不将字段定义为 LoginUI 以呈现其 UI。

但我见过具有自定义 UI(图片锁定、商业生物识别等)的凭据提供程序。我错过了什么吗?有没有一些无证的方法可以做到这一点?还是我真的对凭证提供者一无所知?

默认情况下我是 .NET 程序员,但我不介意将我的算法转换为 C++(应该不难,因为它是 OpenCV)

【问题讨论】:

  • hm... 据我所知,凭据提供程序由具有系统权限的 LogonUI.exe 加载,因此作为一种解决方案,也许可以在提供程序内部调用 GetDC(0) 并得到处理,然后做你想做的一切。
  • 那么这应该得到 LoginUI 窗口的句柄吗?这是否意味着我可以对其进行更改,或者我应该为其显示一个 UI 窗口的父级(我以前听说过有人这样做,唯一的问题是我有点想让自定义 UI 与登录屏幕)。关于如何修改登录屏幕的任何想法?
  • 有什么解决方案吗???

标签: c++ .net login credential-providers


【解决方案1】:

如果您制作凭据提供程序,则可以在 common.h 文件中定义自定义 UI。

这个用户界面将是有限的,而且很痛苦,但这是我知道的唯一方法。您可以在实现 ICredentialProviderCredential2 的类的 Initialize() 方法中进行额外的初始化;

您可以稍后更新字段:

hr = _pCredProvCredentialEvents->SetFieldString(this, SFI_LARGE_TEXT, L"New text");

你也可以这样弹出窗口:

HWND hwndOwner = NULL;
_pCredProvCredentialEvents->OnCreatingWindow(&hwndOwner);
::MessageBox(hwndOwner, L"The text of the new window", L"new window title", MB_ICONWARNING);

如果你想要一个好的起点 tis repo 非常有用: https://github.com/DavidWeiss2/windows-Credential-Provider-library

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2020-08-07
    • 2021-09-23
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多