我目前正在尝试了解如何创建自定义凭据提供程序。
我有一个样本可以帮助我。此示例特别为WinLogon实现ICredentialProvider和ICredentialProviderFilter。 我的工作是实施CPUS_CREDUI使用场景。
但是,在最初的实现中我没有很多事情,所以我什至不能指望自己做一个实现。
我找到的所有文档仅说明每个部分的实际作用。这是我脑海中唯一“足够清晰”的部分。
问题是我无法将这些部分连接在一起。
Windows似乎调用了不同的功能。我怎么知道调用者是什么,使用了哪些参数? 如果我知道,我可能会对整个过程有更好的了解。
例如:
有一个CREDENTIAL_PROVIDER_USAGE_SCENARIO类型的循环参数,该参数似乎改变了代码中进一步初始化CP的方式。 它似乎首先在CredentialProvider构造函数中定义,但由于我不知道构造函数的调用者是什么... 我猜想它是WinLogon调用的,但是如果是这样,实际上定义参数的是什么?
样本日志始终将此参数值显示为“ CPUS_LOGON”。 如果这是WinLogon调用CP构造函数的结果(如果我以前的假设是正确的),那么CPUS_CREDUI自从登录后便如何调用?
这是我到目前为止的主要问题。谢谢有人能照亮我。
我也会为您提供其他所有信息。
答案 0 :(得分:1)
看看微软的docs
对您的凭据提供程序的第一个呼叫将是SetUsageScenario
HRESULT SetUsageScenario(
CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
DWORD dwFlags
);
第一个参数是场景。
如果您的提供者不是为所提供的方案设计的,则只需返回E_INVALIDARG
。