次の方法で共有


CredWriteDomainCredentialsA 関数 (wincred.h)

CredWriteDomainCredentials 関数は、ドメイン資格情報をユーザーの資格情報セットに書き込みます。 使用される資格情報セットは、現在のトークンのログオン セッションに関連付けられている資格情報セットです。 トークンは、ユーザーの SID を無効にしてはなりません。

構文

BOOL CredWriteDomainCredentialsA(
  [in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in] PCREDENTIALA                    Credential,
  [in] DWORD                           Flags
);

パラメーター

[in] TargetInfo

ターゲット サーバーを識別します。 名前付けメンバーの少なくとも 1 つは、以外の NULL である必要があり、NetbiosServerName、DnsServerNameNetbiosDomainNameDnsDomainName、または DnsTreeNameできます。

[in] Credential

書き込む資格情報。

資格情報は、TargetInfo と一致する必要があります。たとえば、TargetName がワイルドカード DNS 名である場合、資格情報の TargetName メンバーは、TargetInfoDnsServerName メンバーの後置である必要があります。

[in] Flags

API の操作を制御するためのフラグ。 次のフラグが定義されています。

価値 意味
CRED_PRESERVE_CREDENTIAL_BLOB
資格情報 BLOB は、同じ資格情報名と資格情報の種類を持つ既存の資格情報から保持する必要があります。 Credential 構造体に渡される CredentialBlobSize 0 にする必要があります。

戻り値

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

関数が失敗した場合は、FALSE返します。 GetLastError 関数を呼び出して、より具体的な状態コードを取得します。 次の状態コードを返すことができます。

CRED_TYPE_CERTIFICATE資格情報を書き込むと、その他のスマート カード エラーが返される可能性があります。

リターン コード 形容
ERROR_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。 どの名前付けパラメーターも指定されていないか、指定された資格情報に Type メンバーが CRED_TYPE_DOMAIN_PASSWORD または CRED_TYPE_DOMAIN_CERTIFICATE に設定されていないか、資格情報TargetInfoと一致しません。
ERROR_NO_SUCH_LOGON_SESSION
ログオン セッションが存在しないか、このログオン セッションに関連付けられている資格情報セットがありません。 ネットワーク ログオン セッションには、関連付けられた資格情報セットがありません。
ERROR_INVALID_FLAGS
無効な値が、Flags パラメーターに指定されました。
ERROR_BAD_USERNAME
渡された資格情報 構造体の UserName メンバー 無効です。 有効な構文の説明については、そのメンバーの定義を参照してください。
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOBが指定されており、TargetName と Typeと同じ によって既存の資格情報がありません。
SCARD_E_NO_READERS_AVAILABLE
CRED_TYPE_CERTIFICATE資格情報を書き込むには、スマート カード リーダーを使用できる必要があります。
SCARD_E_NO_SMARTCARD またはSCARD_W_REMOVED_CARD: CRED_TYPE_CERTIFICATE
書き込まれる資格情報には、スマート カードを挿入する必要があります。
SCARD_W_WRONG_CHV
書き込まれるCRED_TYPE_CERTIFICATE資格情報に間違った PIN が指定されました。

備考

この関数がCRED_TYPE_CERTIFICATE資格情報を書き込むとき、Credential->CredentialBlob メンバーは、Credential->UserNameで指定された証明書の秘密キーを保護する PIN を指定します。 資格情報マネージャーは PIN を維持しません。 代わりに、後で CSP と認証パッケージで使用するために、PIN が証明書の CSP に渡されます。 CSP は PIN の有効期間を定義します。 たとえば、ほとんどの CSP はスマート カードの取り外し時に PIN をフラッシュします。

CredWriteDomainCredentials は、ドメイン (CRED_TYPE_DOMAIN_PASSWORDまたはCRED_TYPE_DOMAIN_CERTIFICATE) 資格情報の特異性を処理するという点で、credWrite とは異なります。 ドメイン資格情報には、複数のターゲット メンバーが含まれています。

Credential パラメーターで指定された CREDENTIAL 構造体の Type メンバーの値が CRED_TYPE_DOMAIN_EXTENDED場合は、ターゲット名に名前空間を指定する必要があります。

手記

wincred.h ヘッダーは CredWriteDomainCredentials をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wincred.h
ライブラリ Advapi32.lib
DLL Advapi32.dll