使用 C# 的 Windows 10 凭据提供程序
Posted
技术标签:
【中文标题】使用 C# 的 Windows 10 凭据提供程序【英文标题】:Windows 10 Credential Provider with C# 【发布时间】:2018-01-05 11:37:07 【问题描述】:我正在努力在 C# 中实现凭据提供程序。
我已经下载了适用于 Windows 8 的 C++ V2 Credential Provider 示例,并设法让它在我的 Windows 10 PC 上运行。 我还研究了 .NET https://github.com/SteveSyfuhs/CredProvider.NET 中的凭据提供程序实现,但这是针对 CredUI 场景的。
我已设法使我的凭据提供程序显示在用户磁贴的“登录选项”下,但现在我想实现登录部分。
我必须为登录/解锁场景实现 GetSerialization 方法。在 C++ 示例中,这已经实现了,但是由于我不熟悉 C++,因此我很难将其“翻译”成 C# 代码。
有谁知道我可以在 C# 中为登录/解锁场景找到此方法的工作实现吗?任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:我发现您只熟悉 C#,并且只想将其用于您正在处理的 CP。 我曾使用 c++ 处理 CP,但我也更喜欢使用更敏捷的 C#。
如您所说,在 C++ 示例中未完全实现锁定/解锁。您必须在正确的位置拦截代码才能在项目中添加其他规则/功能。 无论如何,你可以粘贴一些代码,让我们一起研究一下。
【讨论】:
我已经设法使登录/解锁方案适用于我的案例,方法是使用来自 github.com/phaetto/windows-credentials-provider 的凭证磁贴的 GetSerialization 方法的实现。为了使用磁贴所在的用户名和我提供的密码,我必须对其进行一些更改,但它最终起作用了。无论如何都非常感谢! @SimonaCatana 你能详细说明你是如何让解锁场景工作的吗?我正在使用同一个 Github 项目在 Windows 10 上编写 CP,但在将当前用户关联到解锁场景的磁贴时遇到问题。 很高兴听到您整理了@SimonaCatana 的登录/解锁场景。您可以更清楚地了解您的实施以帮助他人。 对于Kerberos的凭证序列化,您可以在pGina项目中查看序列化助手代码。以上是关于使用 C# 的 Windows 10 凭据提供程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 V2 CP 示例自定义 Windows 10 凭据提供程序?