coQueryAuthenticationServices 函数 (combaseapi.h)
检索在名为 CoInitializeSecurity 的过程时注册的身份验证服务的列表。
语法
HRESULT CoQueryAuthenticationServices(
[out] DWORD *pcAuthSvc,
[out] SOLE_AUTHENTICATION_SERVICE **asAuthSvc
);
参数
[out] pcAuthSvc
指向变量的指针,该变量接收 asAuthSvc 数组中返回的条目数。
[out] asAuthSvc
指向SOLE_AUTHENTICATION_SERVICE结构的数组 的 指针。 该列表是通过对 CoTaskMemAlloc 函数的调用分配的。 调用方必须在使用完列表后通过调用 CoTaskMemFree 函数来释放列表。
返回值
此函数可以返回E_INVALIDARG、E_OUTOFMEMORY和S_OK的标准返回值。
注解
CoQueryAuthenticationServices 检索当前注册的身份验证服务的列表。 如果进程调用 CoInitializeSecurity,则这些是通过该调用注册的服务。 如果应用程序不调用它,COM 会在首次封送或取消封送接口时注册默认安全包时自动调用 CoInitializeSecurity 。
此函数仅返回向 CoInitializeSecurity 注册的身份验证服务。 它不会返回计算机上安装的所有身份验证服务,但 EnumerateSecurityPackages 会返回。 CoQueryAuthenticationServices 主要用于自定义封送处理程序,以确定应用程序可以使用的主体名称。
不同的身份验证服务支持不同安全级别。 例如,NTLMSSP 不支持委派或相互身份验证,而 Kerberos 则不支持。 应用程序只负责注册提供应用程序所需功能的身份验证服务。 此函数提供了一种方法来找出哪些服务已注册到 CoInitializeSecurity。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |