使用 Windows Vista 的凭据提供程序创造自定义的登录体验
2009-02-09 17:43:37 来源:WEB开发网混合凭据提供程序然后将 GetCredentialCount *pdwDefault 输出参数设置为 0。该值是一个从 0 开始的索引值,用于对每个提供程序假定要维护的凭据数组进行索引。如何实现提供程序跟踪其凭据由实施人员来完成,而在一组给定凭据对象的生存期内会一直对索引进行维护。
多个提供程序枚举一个默认凭据是完全可能的。例如,在当前的方案中,可以预期内置的密码凭据提供程序将枚举它自己的一个默认凭据。LogonUI 如何提示用户从多个默认和非默认凭据中作出选择而不会使用户无从下手?一般来讲,对于每一个凭据,都会向用户显示一个图块,并且会将焦点设置到代表默认凭据的那个图块。在存在多个默认凭据的情况下,实际的默认凭据是在枚举各个默认凭据时通过一系列优先规则选出的。对于各个凭据而言,如果已有一个没有自动登录的默认凭据,并且此凭据将要执行自动登录,则它将成为默认凭据。如果此凭据来自最后登录 (LLO) 提供程序并且尚还没有自动登录的默认凭据,则此凭据将成为默认凭据。最后,如果还没有默认凭据,则此凭据将成为默认凭据。尽管说了这么多,我的混合凭据提供程序的自动登录语义使得该讨论没有什么实际意义。只要枚举的混合凭据包含有效的登录信息,用户就永远都看不到任何图块。下面我将对此稍作解释。
我已提到了与优先规则有关的最后登录提供程序,但应指出,LLO 的意义会根据用户是否正在登录或者它是否是登录后的情况(如桌面锁定或密码更改)而变化。登录时,LLO 提供程序是用于最后的控制台登录的最后一个提供程序。登录后,LLO 提供程序只是用于登录到那个会话的提供程序。其原则就是如果始终用智能卡登录,则智能卡凭据提供程序默认图块将在重新启动后成为默认凭据。但如果因智能卡丢失而使用密码登录,则解锁时密码凭据提供程序的图块将成为该会话的默认凭据。
更多精彩
赞助商链接