gpt4 book ai didi

c++ - Credential Provider 使用场景是如何定义的

转载 作者:行者123 更新时间:2023-11-28 04:18:47 28 4
gpt4 key购买 nike

我目前正在尝试了解自定义凭证提供程序是如何制作的。

我有一个样本可以帮助我。该示例特别为 WinLogon 实现了 ICredentialProvider 和 ICredentialProviderFilter。我的工作是实现CPUS_CREDUI的使用场景。

但是,有很多东西我在最初的实现中没有得到,所以我什至不能指望自己实现。

我找到的所有文档只解释了每个部分的实际作用。这是我心中唯一“足够清楚”的部分。

问题是我无法将这些部分连接在一起。

不同的函数似乎是由 Windows 自己调用的。我怎么知道调用者是什么,使用了哪些参数,诸如此类的事情?如果我知道,我可能会对整个过程有更好的理解。

例如:

  • 有一个 CREDENTIAL_PROVIDER_USAGE_SCENARIO 类型的循环参数,它似乎改变了 CP 在代码中进一步初始化的方式。它似乎首先在 CredentialProvider 构造函数中定义,但因为我不知道构造函数的调用者是什么......我猜它是由 WinLogon 调用的,但如果是这样,实际定义参数的是什么?

  • 样本的日志始终将此参数值显示为“CPUS_LOGON”。如果这是 WinLogon 调用 CP 构造函数的结果(如果我之前的假设为真),那么 CPUS_CREDUI 是如何在登录后调用的?

这是我目前的主要问题。谢谢你,如果有人能解开我。

我也愿意接受您提供给我的所有其他信息。

最佳答案

看看微软的 docs对您的凭据提供程序的第一个调用是 SetUsageScenario

HRESULT SetUsageScenario(
CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
DWORD dwFlags
);

第一个参数是scenario。
如果您的提供程序不是为提供的场景设计的,您可以只返回 E_INVALIDARG

关于c++ - Credential Provider 使用场景是如何定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956211/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com