Win32 API 日本語リファレンス
ホーム › Security.Authentication.Identity › PLSA_ADD_CREDENTIAL

PLSA_ADD_CREDENTIAL

コールバック

シグネチャ

NTSTATUS PLSA_ADD_CREDENTIAL(
    LUID* LogonId,
    DWORD AuthenticationPackage,
    LSA_STRING* PrimaryKeyValue,
    LSA_STRING* Credentials
);

パラメーター

フィールド型説明
LogonIdLUID*資格情報の追加先となるログオンセッションのセッション ID を格納した LUID へのポインターです。
AuthenticationPackageDWORD呼び出し元の認証パッケージの認証パッケージ ID です。この値は、DLL の初期化中に行われる LsaApInitializePackage の呼び出しで受け取ります。
PrimaryKeyValueLSA_STRING*認証パッケージが後で資格情報データの主キーとして参照する必要がある値を格納した文字列です。たとえば、資格情報が関連付けられているドメインまたはサーバーの名前を保持するために使用できます。この文字列の形式と意味は、認証パッケージ固有です。なお、この文字列の値は、指定したログオンセッション内であっても一意である必要はありません。たとえば、同じドメインに対して 2 つのパスワードを持たせ、それぞれのパスワードを資格情報として格納し、ドメイン名を主キーとして格納することもできます。
CredentialsLSA_STRING*ユーザーの資格情報を表す文字列です。この文字列の形式と意味は、認証パッケージ固有です。

公式ドキュメント

[AddCredential は、要件セクションに示されたオペレーティングシステムで使用できます。以降のバージョンでは変更されたり、利用できなくなったりする可能性があります。アプリケーションでは、メッセージの種類として KerbAddExtraCredentialsMessage を指定して LsaCallAuthenticationPackage 関数を使用してください。KerbAddExtraCredentialsMessage は KERB_PROTOCOL_MESSAGE_TYPE 列挙型の値です。]

ログオンセッションに資格情報を追加します。追加した資格情報は、後で GetCredentials 関数を呼び出して参照できます。

戻り値

関数が成功した場合は、STATUS_SUCCESS を返します。

関数が失敗した場合は NTSTATUS コードを返します。返されるコードは、次の値または LSA ポリシー関数の戻り値 のいずれかです。

戻り値 説明
STATUS_NO_SUCH_LOGON_SESSION
指定されたログオンセッションが見つかりませんでした。

LsaNtStatusToWinError 関数は、NTSTATUS コードを Windows のエラーコードに変換します。

解説(Remarks)

資格情報文字列の本体は自己相対でなければなりません。つまり、資格情報の外部にあるメモリへのポインターを含めることはできません。資格情報はコピーされるため、資格情報自体の外部を指すポインターは、コピー後には有効ではなくなります。特に、資格情報内で参照される文字列は、UNICODE_STRING のヘッダーと本体の両方を資格情報バッファーに配置する必要があります。資格情報の本体内にある文字列へのポインターは、オフセットに変更してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)