10

所以,这里是场景。我正在 Windows 7 中开发登录系统。我创建了一个凭据提供程序,其中包含一个凭据。凭据具有三个输入字段,用户名、密码和 PIN。

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

暂时只假设本地场景,用户名和密码将传递给MSV1_0,并与SAM数据库中的用户名和密码进行核对。现在的问题是,我不希望使用 SAM 数据库对其进行检查。假设我有一个文件 C:\users.txt ,其中包含三元组条目: {username ; 密码 ; 别针}。这里所有的用户名都是windows中的现有用户。我该如何做到这一点,以便按照我的方式进行身份验证(检查文件 C:\users.txt.

如果我没记错的话,我们可以创建自己的“包装”MSV1_0 的身份验证包。你们有一个示例代码吗?还是有其他更合适的方式?

谢谢你,我非常感谢你的帮助。

4

3 回答 3

0

自从 GINA 过去离开后,我就没有对 Windows 登录做过任何工作,因为 PKI 已成为凭据存储的事实标准。但...

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

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

这有点老了,所以它指的是智能卡,也许当你说令牌时你还在谈论智能卡,但我怀疑你是指USB驱动器。但是,如果您尝试这种级别的开发,则交换智能卡读/写和 USB 读/写的代码应该相当简单。

于 2013-09-20T08:51:41.383 回答
0

您可以尝试来自 windows sdk 的示例。有子认证包比完整的 AP 更容易实现。

于 2015-08-05T13:29:00.617 回答
-3

您始终可以编写自己的代码来检查数据库中的数据的输入,有很多方法可以做到这一点。 这是一个关于聪明而乏味的方法的视频。

这是关于自定义 Windows 身份验证包的页面, 但我还没有真正检查过

于 2013-12-31T09:32:40.923 回答