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資格情報など) が存在する場合は、各型の 1 つが返されます。 名前付きターゲットに接続する場合は、この最も具体的な資格情報が使用されます。
TargetInfo で指定された資格情報の種類のみ。CredTypes 配列が返されます。 返された Credentials 配列は、 TargetInfo と同じ順序で並べ替えられます。CredTypes 配列。 つまり、認証パッケージでは、 TargetInfo で前に指定して、優先資格情報の種類を指定します。CredTypes 配列。 TargetInfo の場合。CredTypeCount が 0 の 場合、Credentials 配列は次の並べ替えられた順序で返されます。
- CRED_TYPE_DOMAIN_CERTIFICATE
- CRED_TYPE_DOMAIN_PASSWORD
返されるバッファーは、1 つの割り当てられたブロックです。 バッファー内に含まれるポインターは、この 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という名前の資格情報。
- "*" という名前の資格情報。
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 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincred.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |