次の方法で共有


CREDENTIALA 構造体 (wincred.h)

CREDENTIAL 構造体には、個々の資格情報が含まれています。

構文

typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;

メンバーズ

Flags

資格情報の特性を識別するビット メンバー。 未定義のビットはゼロとして初期化する必要があり、それ以外の場合は将来の拡張を可能にするために変更しないでください。

価値 意味
CRED_FLAGS_PROMPT_NOW
2 (0x2)
資格情報が CredentialBlob を保持せず、このログオン セッション中に資格情報が書き込まれていない場合に設定されるビット。 このビットは入力時に無視され、クエリ時に自動的に設定されます。

種類CRED_TYPE_DOMAIN_CERTIFICATEされている場合、CredentialBlob は、証明書の PIN が非常に機密性の高い情報であるため、ログオン セッション間で保持されません。 実際、資格情報が資格情報マネージャーに書き込まれると、PIN は証明書に関連付けられている CSP に渡されます。 CSP は、証明書に適した PIN 保持ポリシーを適用します。

種類CRED_TYPE_DOMAIN_PASSWORD または CRED_TYPE_DOMAIN_CERTIFICATEの場合、認証パッケージは、CRED_FLAGS_PROMPT_NOWとしてマークされた資格情報を使用するときに、常に認証の試行に失敗します。 アプリケーション (通常はキー リング UI を介して) は、ユーザーにパスワードの入力を求めます。 アプリケーションは資格情報を保存し、認証を再試行します。 資格情報が最近書き込まれたため、認証パッケージはCRED_FLAGS_PROMPT_NOWとしてマークされていない資格情報を取得するようになりました。

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
この資格情報に TargetName メンバーが UserName メンバーと同じ値に設定されている場合、ビットが設定されます。 このような資格情報は、特定のユーザーの CredentialBlob を格納するように設計されています。 詳細については、CredMarshalCredential 関数を参照してください。

このビットは、CRED_TYPE_DOMAIN_PASSWORD または CRED_TYPE_DOMAIN_CERTIFICATE場合にのみ指定できます。

Type

資格情報の種類。 資格情報の作成後にこのメンバーを変更することはできません。 次の値が有効です。

価値 意味
CRED_TYPE_GENERIC
1 (0x1)
資格情報は汎用資格情報です。 資格情報は、特定の認証パッケージでは使用されません。 資格情報は安全に保存されますが、他の重要な特性はありません。
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
資格情報はパスワード資格情報であり、Microsoft の認証パッケージに固有です。 NTLM、Kerberos、および Negotiate 認証パッケージは、名前付きターゲットに接続するときにこの資格情報を自動的に使用します。
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
資格情報は証明書の資格情報であり、Microsoft の認証パッケージに固有です。 Kerberos、Negotiate、および Schannel 認証パッケージは、名前付きターゲットに接続するときにこの資格情報を自動的に使用します。
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
この値はサポートされなくなりました。

Windows Server 2003 および Windows XP: 資格情報はパスワード資格情報であり、Microsoft の認証パッケージに固有です。 Passport 認証パッケージは、名前付きターゲットに接続するときに、この資格情報を自動的に使用します。

今後、追加の値が定義される予定です。 アプリケーションは、理解できない資格情報の種類を許可するように記述する必要があります。

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
資格情報は、汎用認証パッケージである証明書資格情報です。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
資格情報は拡張ネゴシエート パッケージでサポートされています。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

CRED_TYPE_MAXIMUM
7 (0x7)
サポートされている資格情報の種類の最大数。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
以前のオペレーティング システムで新しいアプリケーションを実行できるようにする、サポートされている資格情報の種類の拡張最大数。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

TargetName

資格情報の名前。 TargetNameType メンバーは、資格情報を一意に識別します。 資格情報の作成後にこのメンバーを変更することはできません。 代わりに、古い名前の資格情報を削除し、新しい名前の資格情報を作成する必要があります。

TypeCRED_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 つのアスタリスクの前に一致し、PersistCRED_PERSIST_SESSIONされている場合にのみ有効です。 資格情報は、既定の資格情報を一時的にオーバーライドするアプリケーションによって設定できます。

このメンバーは、CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) 文字を超えることはできません。

が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

この資格情報の永続化を定義します。 このメンバーは、読み取りと書き込みが可能です。

価値 意味
CRED_PERSIST_SESSION
1 (0x1)
資格情報は、ログオン セッションの有効期間中保持されます。 この同じユーザーの他のログオン セッションには表示されません。 このユーザーがログオフして再度ログオンした後は存在しません。
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
資格情報は、この同じコンピューター上のすべての後続のログオン セッションに対して保持されます。 この同じコンピューター上の同じユーザーの他のログオン セッションには表示され、他のコンピューター上のこのユーザーのログオン セッションには表示されません。

Windows Vista Home Basic、Windows Vista Home Premium、Windows Vista Starter、Windows XP Home Edition: この値はサポートされていません。

CRED_PERSIST_ENTERPRISE
3 (0x3)
資格情報は、この同じコンピューター上のすべての後続のログオン セッションに対して保持されます。 この同じコンピューター上の同じユーザーの他のログオン セッションと、他のコンピューター上のこのユーザーのログオン セッションに表示されます。

このオプションは、管理者またはユーザーがローミング可能な状態を持たないようにユーザー アカウントを構成する場合に、ローカルに永続化された資格情報として実装できます。 たとえば、ユーザーにローミング プロファイルがない場合、資格情報はローカルでのみ保持されます。

Windows Vista Home Basic、Windows Vista Home Premium、Windows Vista Starter、Windows XP Home Edition: この値はサポートされていません。

AttributeCount

資格情報に関連付けるアプリケーション定義属性の数。 このメンバーは、読み取りと書き込みが可能です。 値を CRED_MAX_ATTRIBUTES (64) より大きくすることはできません。

Attributes

資格情報に関連付けられているアプリケーション定義の属性。 このメンバーは、読み取りと書き込みが可能です。

TargetAlias

TargetName メンバーのエイリアス。 このメンバーは、読み取りと書き込みが可能です。 CRED_MAX_STRING_LENGTH (256) 文字を超えることはできません。

資格情報 種類CRED_TYPE_GENERICされている場合、このメンバーは NULLすることはできませんが、資格情報マネージャーはメンバーを無視します。

UserName

TargetNameへの接続に使用するアカウントのユーザー名。

資格情報 種類CRED_TYPE_DOMAIN_PASSWORDされている場合、このメンバーには、DomainNameUserName または UPN のいずれかを指定できます。

資格情報 TypeCRED_TYPE_DOMAIN_CERTIFICATEされている場合、このメンバーは、CertCredential を使用して CredMarshalCredential 呼び出すことによって作成されたマーシャリングされた証明書参照である必要があります。

資格情報 種類CRED_TYPE_GENERICされている場合、このメンバーは NULLすることはできませんが、資格情報マネージャーはメンバーを無視します。

このメンバーは、CRED_MAX_USERNAME_LENGTH (513) 文字を超えることはできません。

備考

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー wincred.h