SpAcquireCredentialsHandleFn 回调函数 (ntsecpkg.h)
调用以获取主体 凭据的句柄。 如果调用方无权访问凭据,则 安全包 可以拒绝对调用方的访问。
如果凭据句柄返回到调用方,则包还应指定句柄的过期时间。
语法
SpAcquireCredentialsHandleFn Spacquirecredentialshandlefn;
NTSTATUS Spacquirecredentialshandlefn(
[in] PUNICODE_STRING PrincipalName,
[in] ULONG CredentialUseFlags,
[in] PLUID LogonId,
[in] PVOID AuthorizationData,
PVOID GetKeyFunciton,
[in] PVOID GetKeyArgument,
[out] PLSA_SEC_HANDLE CredentialHandle,
[out] PTimeStamp ExpirationTime
)
{...}
参数
[in] PrincipalName
可选。 指向 UNICODE_STRING 结构的指针,该结构包含请求其凭据 的安全主体 的名称。 如果此值为 NULL,则调用方请求调用方正在其 安全上下文 中执行的用户凭据的句柄。
[in] CredentialUseFlags
指示如何使用凭据的标志。 以下值有效。
值 | 含义 |
---|---|
|
凭据将与 AcceptSecurityContext (General) 函数一起使用。 |
|
凭据将与 InitializeSecurityContext (General) 函数一起使用。 |
[in] LogonId
[in] AuthorizationData
可选。 指向补充身份验证数据的指针。
GetKeyFunciton
[in] GetKeyArgument
指向与 GetKeyFunction 函数一起使用的参数的指针。
[out] CredentialHandle
指向接收凭据 的LSA_SEC_HANDLE 的指针。 使用完凭据后,通过调用 SpFreeCredentialsHandle 函数释放句柄。
[out] ExpirationTime
指向接收凭据句柄过期时间的 TimeStamp 的指针。
返回值
如果函数成功,则返回STATUS_SUCCESS。
如果函数失败,则返回一个 NTSTATUS 代码,用于指示它失败的原因。 下表列出了失败的常见原因以及应返回的错误代码。
返回代码 | 说明 |
---|---|
|
拒绝调用方访问。 |
|
没有可用于指定主体的凭据。 |
注解
该包可以使用 本地安全机构 (LSA) 支持函数来确定是否应向调用方授予对所请求凭据的访问权限。
通过调用 SpFreeCredentialsHandle 函数释放从 SpAcquireCredentialsHandle 获取的 凭据。
SSP/AP 必须实现 SpAcquireCredentialsHandle 函数;但是,为实现提供的实际名称由开发人员决定。
从 SpLsaModeInitialize 函数接收的 SECPKG_FUNCTION_TABLE 结构中提供了指向 SpAcquireCredentialsHandle 函数的指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntsecpkg.h |