Windows 10 个自定义凭证提供程序

Windows 10 custom credential provider

最近我正在尝试为 windows 10 创建自定义凭据提供程序,最后我得到了 Microsoft 为 Windows 8.1 (https://docs.microsoft.com/en-us/samples/microsoft/windows-classic-samples/credential-provider/) 提供的示例代码。我试图让它在我的电脑上运行,但我做不到!它只是编译并生成一个 `SampleIcredentialProviderV2.dll 但它不起作用。我单击项目文件夹中的注册表文件,但它仍未显示在我的登录页面上。有没有人有这段代码的经验?我怎样才能使这项工作? 谢谢。

很可能windows找不到您的 dll 或您的凭据提供程序未正确注册。

要了解如何创建凭据提供程序,需要了解两件事。

首先,可以在此注册表位置找到计算机上所有已注册的凭据提供程序:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers

所有子项都是唯一标识 COM 对象的 GUID(或 CLSID),但也是凭据提供程序,因为它们必须实现 IFactory/IUnknown COM 接口。像 {25CBB996-92ED-457e-B28C-4774084BD562} 这样的东西。

Windows 将遍历所有这些 CLSID,如果未过滤,将尝试创建相应凭据提供程序的实例。 为此,它将调查

HKEY_CLASSES_ROOT\CLSID

这里所有的子项代表一个COM对象。您的凭据提供者 CLSID 也必须出现在这里。第二部分来了,里面有另一个子项,InProcServer32,包含一个默认值,表示在哪里可以找到与此 CLSID 关联的 dll。

它可以只是 dll 名称,但它必须在您的 PATH 环境变量或 windows/system32 文件夹中,或者它可以是完整的文件路径。