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 策略函数返回值之一。

返回代码 说明
STATUS_NO_SUCH_LOGON_SESSION
找不到指定的登录会话。
 

LsaNtStatusToWinError 函数将 NTSTATUS 代码转换为 Windows 错误代码。

注解

凭据字符串的正文必须是自相对的;也就是说,它不得包含指向凭据外部的内存的指针。 复制凭据,并且凭据本身之外的任何指针在副本中将不再有效。 具体而言,凭据中引用的字符串应同时将UNICODE_STRING标头和正文放在凭据缓冲区中。 指向凭据正文中的字符串的指针应更改为偏移量。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntsecpkg.h

另请参阅

GetCredentials

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE