CredReadDomainCredentialsW 関数 (wincred.h)

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

構文

BOOL CredReadDomainCredentialsW(
  [in]  PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALW                    **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 の 場合、Credentials 配列は次の並べ替えられた順序で返されます。

  • 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 が長い資格情報が使用されます。 つまり、*.microsoft.com の資格情報ではなく、*.example.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_EXTENDED TargetInfo パラメーターで指定されたCREDENTIAL_TARGET_INFORMATION構造体の CredTypes メンバー内の他の型と混在することはできません。

注意

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

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincred.h
Library Advapi32.lib
[DLL] Advapi32.dll