是否有人在C#中成功创建了自定义Windows凭据提供程序? Windows SDK中的示例都使用C ++。我做过的一些初步搜索表明它可能是可能的,但似乎找不到任何确认它的人。
答案 0 :(得分:11)
+1 pgina。正如Cody所说,没有可用于创建凭证提供程序的托管API,如果您想使用pInvoke路由,则可能需要花费更多时间来解决pInvoke问题,而不是计算凭证提供程序。
pGina可以帮助你的是它有一个很好的插件架构,而插件是用托管代码编写的。见图表here。 pGina处理与LogonUI(本机代码)的通信,但依赖于插件(托管)来进行实际身份验证,这可能是您想要控制的(否则您可能不需要自己的凭据提供程序)。
答案 1 :(得分:5)
Windows Vista及更高版本中的新CredentialProvider模型基于COM。这意味着只要您实现正确的COM接口就应该可以。
基于此,它应该比旧的GINA模型更容易构建,因为较旧的GINA模块使用DLL入口点和函数指针而不是COM接口。
鉴于.Net能够与COM互操作,它应该像以下一样简单:
如果您完成所有这些工作,您将拥有一个使用C#
编写的工作凭证提供程序答案 2 :(得分:3)
查看pGina。我正在玩它,它似乎在我的Windows 8安装上运行正常,所以它也适用于之前的所有Windows版本。它仍然处于很早的阶段,我无法看到任何创建自定义UI的方法,而无需深入研究项目的原生一半。希望这有帮助!
[编辑]再次阅读Cody Gray的评论。要清楚,pGina实际上只是为您编写的本机代码。但是,是的,你可能有更多的控制权在C ++中开始编写,但是如果你不需要太多控制它的表现,那么pGina就是你要走的路。
答案 3 :(得分:0)