使用 Windows Vista 的凭据提供程序创造自定义的登录体验
2009-02-09 17:43:37 来源:WEB开发网负责“凭据提供程序”开发的 Microsoft 开发团队原以为外部开发人员会更愿意基于 COM 来开发插件模型。然而,在 Windows Vista 开发周期的早期阶段,新接口最初的内部设计(类似于 GINA)完全基于 LoadLibrary 和函数指针。之后,基于 COM 的重新设计吸取了第一次的教训,使得设计出来的界面更加简洁和易用。现在我们转到示例代码,来帮助引导我们深入了解凭据提供程序接口。
混合凭据提供程序
此新插件模型的计时功能臻于完美(当然,或许早就应该有这样的功能了)。现在,开发人员可以更轻松地满足多因素身份验证方案需求,同时提供与 Microsoft 原有的相一致的登录体验。
尽管如此,新的接口仍显得相当抽象。有关它的描述说明也同样令人费解,让人感到乏味!要想了解它,一个让人能提起兴趣的方式就是体验一下新凭据提供程序的设计、开发和测试过程。而且,这可以很好地弥补 Microsoft 提供的现有文档的不足 - 有关指针方面的内容,请参阅侧栏“其他资源”。
我创建了一个示例,即“混合凭据提供程序”,它会演示一些全新的功能。混合凭据提供程序允许将用户名、密码和域名存储在智能卡上。插入智能卡后,用户会自动登录。(可从《MSDN® 杂志》网站下载示例代码。)我没有重新编写代码,而是将以下三个来源的代码合在一起:
Microsoft® Windows SDK 中提供的基于密码的凭据提供程序示例。
以前的 PropCert 示例,同样来自 SDK。其核心是一个用于读取基于证书的智能卡凭据的 Win32® 线程。
这篇文章讨论了如何通过托管代码与 Windows 智能卡子系统建立接口。
对于我在 2006 年 11 月发表的那篇文章中所提供的示例代码,我需要作进一步的说明。凭据提供程序体系结构及其主机只支持本机代码。尽管我的第一篇文章讲的主要是托管代码,但其中也包含了一个本机帮助程序 DLL,以便于公开新的智能卡模块接口。混合凭据提供程序便基于这个帮助程序 DLL。如需该 DLL 的完整源代码,同样可以通过 2006 年 11 月发表的那篇文章随附的下载内容中获得。
更多精彩
赞助商链接