9

因此,这里是场景。我正在开发Windows 7中的登录系统。我创建了一个Credential Provider,其中包含一个Credential。凭证有三个输入字段,用户名,密码和PIN。自定义Windows身份验证包

根据我所学的文档(CMIIW),当我们填写字段并单击登录时,WINLOGON将检索用户名和密码,并通过调用LSALogonUser()进行身份验证发送给LSA。然后LSA将尝试与认证包KERBEROS(用于远程登录)或MSV1_0(用于本地登录)协商。

现在假定只有本地情况,用户名和密码将被传递给MSV1_0,并与SAM数据库中的用户进行核对。现在的事情是,我不希望它被SAM数据库检查。比方说,我有一个文件C:\ users.txt,其中包含条目为三元组:{username;密码;销}。这里的所有用户名都是windows中的现有用户。我如何使验证按照我的方式进行(检查文件C:\ users.txt。

如果我没有弄错,我们可以创建我们自己的认证软件包来'包装'MSV1_0。你们有一个示例代码?还是有另一种更合适的方式?

谢谢你,我很欣赏你的帮助非常感谢。

+0

你有没有解决过这个问题?我试图做一些类似的地方,身份验证应该基于用户名和来自OTP令牌 – Jeff 2012-06-12 18:05:51

+0

的数字,你仍然坚持这一点?几年前我写了一个windows GINA扩展,如果它对你有帮助,我可以挖掘代码。欢呼声, Con – Greycon 2012-07-02 16:09:34

+1

Windows会根据其本地安全机构检查您的凭据,因为它想知道** IT **是否应该信任您。在文本文件中绕过自己的不安全凭据检查会危及Windows的安全,所以我怀疑它会让你这样做。你究竟在努力实现什么? – dajames 2012-09-25 17:48:04

回答

0

我没有做任何工作以来GINA在Windows登录因为PKI成为了事实上的凭据存储标准,但是...

您的问题要求提供一些示例代码,在这里是一个完整的描述

http://msdn.microsoft.com/en-gb/magazine/cc163489.aspx#S4

这是一老一少,所以它指的是智能卡,也许当你说你的令牌仍然在谈论智能卡,但我怀疑你的意思是一个USB驱动器。但是,如果您尝试进行这种级别的开发,则应该相当简单地将代码交换为智能卡读/写和USB读/写。

0

你可以从Windows SDK中试样品。有一些子认证软件包比完整的AP更容易实现。