次の方法で共有


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 を保持せず、このログオン セッション中に資格情報が書き込まれていない場合に設定されるビット。 このビットは入力時に無視され、クエリが実行されると自動的に設定されます。

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

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

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

このビットは、 TypeCRED_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

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

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) 文字を超えることはできません。

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

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

意味
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の場合、このメンバーには DomainName UserName または UPN のいずれかを指定できます。

資格情報の 種類CRED_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 (デスクトップ アプリのみ)
Header wincred.h