CREDENTIALW 構造体 (wincred.h)
CREDENTIAL 構造体には、個々の資格情報が含まれています。
構文
typedef struct _CREDENTIALW {
DWORD Flags;
DWORD Type;
#if ...
wchar_t *TargetName;
#else
LPWSTR TargetName;
#endif
#if ...
wchar_t *Comment;
#else
LPWSTR Comment;
#endif
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEW Attributes;
#if ...
wchar_t *TargetAlias;
#else
LPWSTR TargetAlias;
#endif
#if ...
wchar_t *UserName;
#else
LPWSTR UserName;
#endif
} CREDENTIALW, *PCREDENTIALW;
メンバー
Flags
資格情報の特性を識別するビット メンバー。 未定義のビットは 0 として初期化する必要があります。それ以外の場合は、将来の拡張を許可するように変更しないでください。
値 | 説明 |
---|---|
|
資格情報が CredentialBlob を保持せず、このログオン セッション中に資格情報が書き込まれていない場合に設定されるビット。 このビットは入力時に無視され、照会時に自動的に設定されます。
Type がCRED_TYPE_DOMAIN_CERTIFICATEの場合、証明書の PIN は非常に機密性の高い情報であるため、CredentialBlob はログオン セッション間で保持されません。 実際、資格情報が資格情報マネージャーに書き込まれると、PIN は証明書に関連付けられている CSP に渡されます。 CSP は、証明書に適した PIN 保持ポリシーを適用します。 Type がCRED_TYPE_DOMAIN_PASSWORDまたはCRED_TYPE_DOMAIN_CERTIFICATEの場合、認証パッケージは、CRED_FLAGS_PROMPT_NOWとしてマークされた資格情報を使用すると、常に認証試行に失敗します。 アプリケーション (通常はキー リング UI を使用) は、ユーザーにパスワードの入力を求めます。 アプリケーションは資格情報を保存し、認証を再試行します。 資格情報が最近書き込まれたため、認証パッケージは、CRED_FLAGS_PROMPT_NOWとしてマークされていない資格情報を取得するようになりました。 |
|
この資格情報の TargetName メンバーが UserName メンバーと同じ値に設定されている場合、ビットが設定されます。 このような資格情報は、特定のユーザーの CredentialBlob を格納するように設計されています。 詳細については、 CredMarshalCredential 関数に関するページ を参照してください。
このビットは、 Type が CRED_TYPE_DOMAIN_PASSWORD または CRED_TYPE_DOMAIN_CERTIFICATEの場合にのみ指定できます。 |
Type
資格情報の種類。 このメンバーは、資格情報の作成後に変更することはできません。 次の値が有効です。
TargetName
資格情報の名前。 TargetName メンバーと Type メンバーは、資格情報を一意に識別します。 このメンバーは、資格情報の作成後に変更することはできません。 代わりに、古い名前の資格情報と、新しい名前が作成された資格情報を削除する必要があります。
Type がCRED_TYPE_DOMAIN_PASSWORDまたはCRED_TYPE_DOMAIN_CERTIFICATEの場合、このメンバーは資格情報を使用するサーバーを識別します。 メンバーは、NetBIOS または DNS サーバー名、ワイルドカード文字を含む DNS ホスト名サフィックス、ワイルドカード文字シーケンスを含む NetBIOS または DNS ドメイン名、またはアスタリスクのいずれかです。
TargetName が DNS ホスト名の場合、TargetAlias メンバーにはホストの NetBIOS 名を指定できます。
TargetName がワイルドカード文字を含む DNS ホスト名サフィックスの場合、DNS ホスト名の左端のラベルはアスタリスク (*) です。これは、ターゲット名が指定した名前で終わる任意のサーバー (例: *.microsoft.com) であることを示します。
TargetName がワイルドカード文字シーケンスを含むドメイン名の場合、構文はドメイン名の後に円記号とアスタリスク (\*) が続きます。これは、ターゲット名が名前付きドメイン (または領域) のメンバーである任意のサーバーであることを示します。
TargetName がワイルドカード文字シーケンスを含む DNS ドメイン名の場合、TargetAlias メンバーには、同じドメインのワイルドカード シーケンスを使用する NetBIOS ドメイン名を指定できます。
TargetName で DFS 共有 (DfsRoot\DfsShare など) が指定されている場合、この資格情報は、特定の DFS 共有とその DFS 共有を介して到達したサーバーと一致します。
TargetName が 1 つのアスタリスク (*) の場合、この資格情報は任意のサーバー名と一致します。
TargetName がCRED_SESSION_WILDCARD_NAMEされている場合、この資格情報は任意のサーバー名と一致します。 この資格情報は 1 つのアスタリスクの前に一致し、 Persist が CRED_PERSIST_SESSIONの場合にのみ有効です。 資格情報は、既定の資格情報を一時的にオーバーライドするアプリケーションによって設定できます。
このメンバーは 、CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) 文字を超えることはできません。
Type がCRED_TYPE_GENERICの場合、このメンバーは、実際のターゲットに加えて資格情報を使用するサービスを識別する必要があります。 Microsoft は、サービスを実装する会社の名前の前に名前を付ける必要があります。 Microsoft はプレフィックス "Microsoft" を使用します。 Microsoft によって作成されたサービスには、サービス名 ( 例: Microsoft_RAS_TargetName) を追加する必要があります。 このメンバーは 、CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) 文字を超えることはできません。
このメンバーでは、大文字と小文字は区別されません。
Comment
この資格情報を記述するユーザーからの文字列コメント。 このメンバーは 、CRED_MAX_STRING_LENGTH (256) 文字を超えることはできません。
LastWritten
資格情報の最後の変更の協定世界時 (グリニッジ標準時) の時刻。 書き込み操作の場合、このメンバーの値は無視されます。
CredentialBlobSize
CredentialBlob メンバーのサイズ (バイト単位)。 このメンバーは 、CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) バイトを超えることはできません。
CredentialBlob
資格情報のシークレット データ。 CredentialBlob メンバーは、読み取りと書き込みの両方を行うことができます。
Type メンバーがCRED_TYPE_DOMAIN_PASSWORD場合、このメンバーには UserName のプレーンテキスト Unicode パスワードが含まれます。 CredentialBlob メンバーと CredentialBlobSize メンバーには、末尾に 0 文字は含まれません。 また、 CRED_TYPE_DOMAIN_PASSWORDの場合、このメンバーは認証パッケージでのみ読み取ることができます。
Type メンバーがCRED_TYPE_DOMAIN_CERTIFICATE場合、このメンバーには UserName の明確なテスト Unicode PIN が含まれます。 CredentialBlob メンバーと CredentialBlobSize メンバーには、末尾に 0 文字は含まれません。 また、このメンバーは認証パッケージでのみ読み取ることができます。
Type メンバーがCRED_TYPE_GENERIC場合、このメンバーはアプリケーションによって定義されます。
資格情報は移植可能である必要があります。 アプリケーションでは、 CredentialBlob のデータが移植可能であることを確認する必要があります。 アプリケーションは、 CredentialBlob でデータのバイト エンディアンとアラインメントを定義します。
Persist
この資格情報の永続化を定義します。 このメンバーは、読み取りと書き込みが可能です。
AttributeCount
資格情報に関連付けるアプリケーション定義属性の数。 このメンバーは、読み取りと書き込みが可能です。 その値は 、CRED_MAX_ATTRIBUTES (64) より大きくすることはできません。
Attributes
資格情報に関連付けられているアプリケーション定義の属性。 このメンバーは、読み取りと書き込みが可能です。
TargetAlias
TargetName メンバーのエイリアス。 このメンバーは、読み取りと書き込みが可能です。 CRED_MAX_STRING_LENGTH (256) 文字より長くすることはできません。
資格情報の 種類 が CRED_TYPE_GENERICの場合、このメンバーは NULL 以外にすることができますが、資格情報マネージャーはメンバーを無視します。
UserName
TargetName への接続に使用するアカウントのユーザー名。
資格情報の 種類 が CRED_TYPE_DOMAIN_PASSWORDの場合、このメンバーには DomainName\UserName または UPN を指定できます。
資格情報の 種類 が CRED_TYPE_DOMAIN_CERTIFICATEの場合、このメンバーは、CertCredential で CredMarshalCredential を呼び出すことによって作成されたマーシャリングされた証明書参照である必要があります。
資格情報の 種類 が CRED_TYPE_GENERICの場合、このメンバーは NULL 以外にすることができますが、資格情報マネージャーはメンバーを無視します。
このメンバーは 、CRED_MAX_USERNAME_LENGTH (513) 文字を超えることはできません。
解説
注意
wincred.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CREDENTIAL を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincred.h |