LSA_ADD_CREDENTIAL回调函数 (ntsecpkg.h)
[AddCredential 可在“要求”部分指定的操作系统中使用。 它可能在后续版本中变更或不可用。 应用程序应使用 LsaCallAuthenticationPackage 函数,并将 KerbAddExtraCredentialsMessage 指定为消息类型。 KerbAddExtraCredentialsMessage 是 一个KERB_PROTOCOL_MESSAGE_TYPE 枚举值。]
将凭据添加到登录会话。 以后可以通过调用 GetCredentials 函数来引用这些凭据。
语法
LSA_ADD_CREDENTIAL LsaAddCredential;
NTSTATUS LsaAddCredential(
[in] PLUID LogonId,
[in] ULONG AuthenticationPackage,
[in] PLSA_STRING PrimaryKeyValue,
[in] PLSA_STRING Credentials
)
{...}
参数
[in] LogonId
指向 LUID 的指针,该 LUID 包含要向其添加凭据的登录会话的会话 ID。
[in] AuthenticationPackage
调用身份验证包的身份验证包 ID。 在 DLL 初始化期间, LsaApInitializePackage 调用中收到此值。
[in] PrimaryKeyValue
一个字符串,其中包含一个值,身份验证包稍后需要引用该值作为凭据数据的主键。 例如,这可用于保留与凭据相关的域或服务器的名称。 此字符串的格式和含义特定于身份验证包。 请注意,即使对于指定的登录会话,字符串值也不一定是唯一的。 例如,同一个域可以有两个密码,每个密码都存储为凭据,域名存储为主键。
[in] Credentials
表示用户凭据的字符串。 此字符串的格式和含义特定于身份验证包。
返回值
如果函数成功,该函数将返回STATUS_SUCCESS。
如果函数失败,它将返回 NTSTATUS 代码,该代码可以是以下值或 LSA 策略函数返回值之一。
返回代码 | 说明 |
---|---|
|
找不到指定的登录会话。 |
LsaNtStatusToWinError 函数将 NTSTATUS 代码转换为 Windows 错误代码。
注解
凭据字符串的正文必须是自相对的;也就是说,它不得包含指向凭据外部的内存的指针。 复制凭据,并且凭据本身之外的任何指针在副本中将不再有效。 具体而言,凭据中引用的字符串应同时将UNICODE_STRING标头和正文放在凭据缓冲区中。 指向凭据正文中的字符串的指针应更改为偏移量。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntsecpkg.h |