次の方法で共有


CredReadDomainCredentialsA 関数 (wincred.h)

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

構文

BOOL CredReadDomainCredentialsA(
  [in]  PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALA                    **Credential
);

パラメーター

[in] TargetInfo

ターゲット サーバーを識別するターゲット情報。 名前付けメンバーの少なくとも 1 つは、NULL(NetbiosServerName、DnsServerName、NetbiosDomainName、DnsDomainName、または DnsTreeName) することはできません。

[in] Flags

関数の操作を制御するフラグ。

次のフラグが定義されています。

CRED_CACHE_TARGET_INFORMATION

CredGetTargetInfoを使用して、後続の読み取りのために TargetInfo をキャッシュします。

[out] Count

Credentials 配列で返された資格情報の数。

[out] Credential

資格情報へのポインターの配列へのポインター。 TargetInfo に一致する最も具体的な既存の資格情報が返されます。 さまざまな種類の資格情報 (CRED_TYPE_DOMAIN_PASSWORD資格情報やCRED_TYPE_DOMAIN_CERTIFICATE資格情報など) が存在する場合は、各種類のいずれかが返されます。 名前付きターゲットに接続する場合は、この最も具体的な資格情報が使用されます。

TargetInfoで指定された資格情報の種類のみ。CredTypes 配列が返されます。 返された Credentials 配列は、TargetInfoと同じ順序で並べ替えられます。CredTypes 配列。 つまり、認証パッケージでは、TargetInfoで先ほど指定して、優先資格情報の種類を指定します。CredTypes 配列。TargetInfo場合。CredTypeCount が 0 の場合、配列 資格情報が次の並べ替えられた順序で返されます。

  • CRED_TYPE_DOMAIN_CERTIFICATE
  • CRED_TYPE_DOMAIN_PASSWORD

返されるバッファーは、1 つの割り当てられたブロックです。 バッファー内に含まれるポインターは、この 1 つの割り当てられたブロック内の場所へのポインターです。 CredFree呼び出すことによって、返される単一のバッファーを解放する必要があります。

戻り値

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

  • ERROR_INVALID_PARAMETER

    どの名前付けパラメーターも指定されませんでした。

  • ERROR_NOT_FOUND

    指定した名前付けパラメーターに一致する資格情報はありません。

  • ERROR_NO_SUCH_LOGON_SESSION

    ログオン セッションが存在しないか、このログオン セッションに関連付けられている資格情報セットがありません。 ネットワーク ログオン セッションには、関連付けられた資格情報セットがありません。

  • ERROR_INVALID_FLAGS

    Flags パラメーターに無効なフラグが指定されました。

備考

この関数は、名前付けパラメーターに一致する最も具体的な資格情報を返します。 たとえば、ターゲット サーバー名と一致する資格情報とターゲット ドメイン名と一致する資格情報がある場合は、サーバー固有の資格情報のみが返されます。 これは、使用される資格情報です。

次の一覧では、複数の資格情報が一致する場合に返される資格情報の順序 (最も具体的なものから最も具体的なものまで) を指定します。

  • 資格情報のターゲット名は DfsRoot\DfsShare形式で、TargetNameと完全に一致します。
  • DnsServerNameでの完全一致。
  • NetBIOSServerNameでの完全一致。
  • TargetNameでの完全一致。
  • ワイルドカード サーバー資格情報に DnsServerName の一致。 複数のワイルドカード サーバー資格情報が一致する場合は、TargetName が長い資格情報が使用されます。 つまり、*.example.microsoft.com の資格情報は、*.microsoft.com の資格情報の代わりに使用されます。
  • DnsDomainName と、DnsDomainName\* 形式のワイルドカード ドメイン資格情報 完全に一致します。
  • NetBIOSDomainName と NetBIOSDomainName <形式のワイルドカード ドメイン資格情報の完全一致>\*
  • CRED_SESSION_WILDCARD_NAMEという名前の資格情報。
  • "*" という名前の資格情報。
CredReadDomainCredentials は、ドメイン (CRED_TYPE_DOMAIN_PASSWORDまたはCRED_TYPE_DOMAIN_CERTIFICATE) 資格情報の特異性を処理するという点で、CredRead とは異なります。 ドメイン資格情報には、複数のターゲット メンバーが含まれています。

Credentials パラメーターで指定された CREDENTIAL 構造体の Type メンバーの値が CRED_TYPE_DOMAIN_EXTENDED場合は、ターゲット名に名前空間を指定する必要があります。 この関数は、指定した型の資格情報を 1 つだけ返すことができます。

この関数は、この型の複数の資格情報を返すことができますが、CRED_TYPE_DOMAIN_EXTENDEDTargetInfo パラメーターで指定された CREDENTIAL_TARGET_INFORMATION 構造体の CredTypes メンバー内の他の型と混在させることはできません。

手記

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

必要条件

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