用.NET语言替换GINA?

我搜索了很多地方,我只发现了一个名为pGINA的GINA替代品,但它是用C ++编写的,我根本不知道。

有没有人知道C#或VB.NET中的一个?

(我正在编写用于工作的软件来控制员工在做什么)

在Winlogon中托管.NET(GINA dll加载的地方)可能不是一个热门的想法 – 如果其他东西决定做同样的事情可能导致各种冲突,如果你丢弃winlogon,你就没有得到任何PC。 此外,GINA已经被ICredentialProvider替换为Vista(见此处 ) – 所以一旦你转向更新的操作系统,你的投资就会丢失。 即使在那里,同样的事情也适用:自定义凭证提供程序被加载到Winlogon中,所以在那里使用.NET可能不是一个好主意。

无论如何,这两者都旨在支持自定义身份validation模块,而不是“控制员工正在做什么”。 如果您正在尝试执行此操作,还有其他方法可以在登录桌面上运行软件。

总而言之,如果您仍想尝试它,您将需要一个非托管的填充程序DLL,C ++ / CLI或一些IL黑客(请参阅此处 )来导出GINA函数,因为C#无法直接导出DLL函数。 纯粹的托管C#解决方案是不可能的。

扩展nitzmahone的优点:

完全取代GINA实际上是使用托管代码的禁忌。 OTOH,很有可能用C ++编写替换GINA并让它调用.Net代码来完成繁重的工作。

几年前,我使用这种技术用一个花哨的新闻服务取代CTRL + ALT + DEL屏幕。 我的自定义GINA是标准GINA的代理。 大多数时候它透明地传递给标准GINA。 例外情况是它运行.Net应用程序的.exe而不是显示ALT + DEL + CTRL屏幕,然后在显示登录屏幕之前等待.exe终止。

遗憾的是,当显然无法将工作直接应用于Vista时,我放弃了该项目。