【发布时间】:2023-03-04 15:06:01
【问题描述】:
所以,这就是场景。我正在 Windows 7 中开发登录系统。我创建了一个凭据提供程序,其中包含一个凭据。 Credential 包含三个输入字段,用户名、密码和 PIN。
从我了解到的文档(CMIIW)中,当我们填写字段并单击登录时,WINLOGON 将检索用户名和密码,并通过调用 LSALogonUser() 将其发送给 LSA 进行身份验证。然后 LSA 将尝试与身份验证包 KERBEROS(用于远程登录)或 MSV1_0(用于本地登录)协商。
假设现在只有本地场景,用户名和密码将传递给MSV1_0,并与SAM数据库中的用户名和密码进行核对。现在的问题是,我不希望使用 SAM 数据库对其进行检查。假设我有一个文件 C:\users.txt ,其中包含三元组条目: {username ;密码 ;别针}。这里所有的用户名都是windows中的现有用户。如何使身份验证按照我的方式进行(检查文件 C:\users.txt。
如果我没记错的话,我们可以创建自己的“包装”MSV1_0 的身份验证包。你们有一个示例代码吗?还是有其他更合适的方式?
谢谢你,非常感谢你的帮助。
【问题讨论】:
-
你解决过这个问题吗?我正在尝试做类似的事情,其中身份验证应该基于用户名和来自 OTP 令牌的数字
-
你还在纠结这个吗?几年前我写了一个 Windows GINA 扩展,如果它对你有任何帮助,我可以挖掘代码。干杯,骗局
-
Windows 根据其本地安全机构检查您的凭据,因为它想知道 IT 是否应该信任您。在文本文件中使用您自己的不安全凭据绕过它的检查会危及 Windows 的安全性,所以我怀疑它会让您这样做。你到底想达到什么目的?
-
@jeff 有一篇关于在远程 Windows 登录中使用 OTP 令牌的技术网文章。这有点令人费解(仅适用于 Windows 7 及更高版本)但可能会有所帮助。 technet.microsoft.com/en-us/library/gg637807(v=ws.10).aspx
-
@dajames 我对家用计算机的最终要求:当我在家时,用户名+密码应该足够了当我在外面使用远程桌面时我想通过用户名+OTP-进行验证令牌。我想我将不得不接受用户名+密码+OTP-token。这篇文章读起来很有趣,但我还在 Vista
标签: c++ windows-authentication winlogon lsa credential-providers