Bagikan melalui


Struktur CREDENTIALW (wincred.h)

Struktur kredensial berisi kredensial individual.

Sintaksis

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;

Anggota

Flags

Sedikit anggota yang mengidentifikasi karakteristik kredensial. Bit yang tidak terdefinisi harus diinisialisasi sebagai nol dan tidak diubah untuk mengizinkan peningkatan di masa mendatang.

Nilai Arti
CRED_FLAGS_PROMPT_NOW
2 (0x2)
Bit diatur jika kredensial tidak mempertahankan CredentialBlob dan kredensial belum ditulis selama sesi masuk ini. Bit ini diabaikan pada input dan diatur secara otomatis ketika dikueri.

Jika Jenis CRED_TYPE_DOMAIN_CERTIFICATE, CredentialBlob tidak bertahan di seluruh sesi masuk karena PIN sertifikat adalah informasi yang sangat sensitif. Memang, ketika kredensial ditulis ke manajer kredensial, PIN diteruskan ke CSP yang terkait dengan sertifikat. CSP akan memberlakukan kebijakan penyimpanan PIN yang sesuai dengan sertifikat.

Jika Jenis CRED_TYPE_DOMAIN_PASSWORD atau CRED_TYPE_DOMAIN_CERTIFICATE, paket autentikasi selalu gagal dalam upaya autentikasi saat menggunakan kredensial yang ditandai sebagai CRED_FLAGS_PROMPT_NOW. Aplikasi (biasanya melalui antarmuka pengguna cincin kunci) meminta kata sandi kepada pengguna. Aplikasi menyimpan kredensial dan mencoba kembali autentikasi. Karena kredensial baru-baru ini ditulis, paket autentikasi sekarang mendapatkan kredensial yang tidak ditandai sebagai CRED_FLAGS_PROMPT_NOW.

CRED_FLAGS_USERNAME_TARGET
4 (0x4)
Bit diatur jika kredensial ini memiliki anggota TargetName yang diatur ke nilai yang sama dengan anggota UserName. Kredensial semacam itu dirancang untuk menyimpan CredentialBlob untuk pengguna tertentu. Untuk informasi selengkapnya, lihat fungsi CredMarshalCredential.

Bit ini hanya dapat ditentukan jika jenis CRED_TYPE_DOMAIN_PASSWORD atau CRED_TYPE_DOMAIN_CERTIFICATE.

Type

Jenis kredensial. Anggota ini tidak dapat diubah setelah kredensial dibuat. Nilai berikut ini valid.

Nilai Arti
CRED_TYPE_GENERIC
1 (0x1)
Kredensial adalah kredensial umum. Kredensial tidak akan digunakan oleh paket autentikasi tertentu. Kredensial akan disimpan dengan aman tetapi tidak memiliki karakteristik signifikan lainnya.
CRED_TYPE_DOMAIN_PASSWORD
2 (0x2)
Info masuk adalah kredensial kata sandi dan khusus untuk paket autentikasi Microsoft. Paket autentikasi NTLM, Kerberos, dan Negosiasi akan secara otomatis menggunakan kredensial ini saat menyambungkan ke target bernama.
CRED_TYPE_DOMAIN_CERTIFICATE
3 (0x3)
Info masuk adalah kredensial sertifikat dan khusus untuk paket autentikasi Microsoft. Paket autentikasi Kerberos, Negosiasi, dan Schannel secara otomatis menggunakan kredensial ini saat menyambungkan ke target bernama.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4 (0x4)
Nilai ini tidak lagi didukung.

Windows Server 2003 dan Windows XP: Info masuk adalah kredensial kata sandi dan khusus untuk paket autentikasi dari Microsoft. Paket autentikasi Paspor akan secara otomatis menggunakan kredensial ini saat menyambungkan ke target bernama.

Nilai tambahan akan ditentukan di masa mendatang. Aplikasi harus ditulis untuk memungkinkan jenis kredensial yang tidak mereka pahami.

CRED_TYPE_GENERIC_CERTIFICATE
5 (0x5)
Kredensial adalah kredensial sertifikat yang merupakan paket autentikasi generik.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

CRED_TYPE_DOMAIN_EXTENDED
6 (0x6)
Kredensial didukung oleh paket Negosiasi yang diperluas.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

CRED_TYPE_MAXIMUM
7 (0x7)
Jumlah maksimum jenis kredensial yang didukung.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
Jumlah maksimum yang diperpanjang dari jenis kredensial yang didukung yang sekarang memungkinkan aplikasi baru berjalan pada sistem operasi yang lebih lama.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

TargetName

Nama kredensial. TargetName dan Jenis anggota secara unik mengidentifikasi kredensial. Anggota ini tidak dapat diubah setelah kredensial dibuat. Sebagai gantinya, kredensial dengan nama lama harus dihapus dan kredensial dengan nama baru yang dibuat.

Jika Jenis CRED_TYPE_DOMAIN_PASSWORD atau CRED_TYPE_DOMAIN_CERTIFICATE, anggota ini mengidentifikasi server atau server tempat kredensial digunakan. Anggota adalah nama server NetBIOS atau DNS, akhiran nama host DNS yang berisi karakter kartubebas, nama domain NetBIOS atau DNS yang berisi urutan karakter kartubebas, atau tanda bintang.

Jika TargetName adalah nama host DNS, anggota TargetAlias bisa menjadi nama NetBIOS host.

Jika TargetName adalah akhiran nama host DNS yang berisi karakter kartubebas, label paling kiri dari nama host DNS adalah tanda bintang (*), yang menunjukkan bahwa nama target adalah server apa pun yang namanya berakhiran nama yang ditentukan, misalnya, *.microsoft.com.

Jika TargetName adalah nama domain yang berisi urutan karakter kartubebas, sintaksnya adalah nama domain diikuti dengan garis miring terbalik dan tanda bintang (\*), yang menunjukkan bahwa nama target adalah server apa pun yang merupakan anggota domain bernama (atau realm).

Jika TargetName adalah nama domain DNS yang berisi urutan karakter kartubebas, anggota TargetAlias dapat menjadi nama domain NetBIOS yang menggunakan urutan kartubebas untuk domain yang sama.

Jika TargetName menentukan berbagi DFS, misalnya, DfsRoot\DfsShare, kredensial ini cocok dengan berbagi DFS tertentu dan server apa pun yang dicapai melalui berbagi DFS tersebut.

Jika TargetName adalah tanda bintang tunggal (*), kredensial ini cocok dengan nama server apa pun.

Jika TargetName CRED_SESSION_WILDCARD_NAME, kredensial ini cocok dengan nama server apa pun. Kredensial ini cocok sebelum tanda bintang tunggal dan hanya valid jika PersistCRED_PERSIST_SESSION. Kredensial dapat diatur oleh aplikasi yang ingin mengganti sementara kredensial default.

Anggota ini tidak boleh lebih panjang dari CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) karakter.

Jika Jenis CRED_TYPE_GENERIC, anggota ini harus mengidentifikasi layanan yang menggunakan kredensial selain target aktual. Microsoft menyarankan nama tersebut diawali dengan nama perusahaan yang mengimplementasikan layanan. Microsoft akan menggunakan awalan "Microsoft". Layanan yang ditulis oleh Microsoft harus menambahkan nama layanan mereka, misalnya Microsoft_RAS_TargetName. Anggota ini tidak boleh lebih panjang dari CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) karakter.

Anggota ini tidak peka huruf besar/kecil.

Comment

Komentar string dari pengguna yang menjelaskan kredensial ini. Anggota ini tidak boleh lebih panjang dari CRED_MAX_STRING_LENGTH (256) karakter.

LastWritten

Waktu, dalam Waktu Universal Terkoordinasi (Greenwich Mean Time), dari modifikasi terakhir kredensial. Untuk operasi tulis, nilai anggota ini diabaikan.

CredentialBlobSize

Ukuran, dalam byte, dari CredentialBlob anggota. Anggota ini tidak boleh lebih besar dari CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) byte.

CredentialBlob

Data rahasia untuk kredensial. Anggota CredentialBlob dapat dibaca dan ditulis.

Jika anggota Jenis CRED_TYPE_DOMAIN_PASSWORD, anggota ini berisi kata sandi Unicode teks biasa untuk UserName. CredentialBlob dan CredentialBlobSize tidak menyertakan karakter nol berikutnya. Selain itu, untuk CRED_TYPE_DOMAIN_PASSWORD, anggota ini hanya dapat dibaca oleh paket autentikasi.

Jika anggota Jenis CRED_TYPE_DOMAIN_CERTIFICATE, anggota ini berisi PIN Unicode uji yang jelas untuk UserName. CredentialBlob dan CredentialBlobSize tidak menyertakan karakter nol berikutnya. Selain itu, anggota ini hanya dapat dibaca oleh paket autentikasi.

Jika anggota Jenis CRED_TYPE_GENERIC, anggota ini ditentukan oleh aplikasi.

Kredensial diharapkan portabel. Aplikasi harus memastikan bahwa data dalam CredentialBlob portabel. Aplikasi mendefinisikan byte-endian dan penyelarasan data dalam CredentialBlob.

Persist

Menentukan persistensi kredensial ini. Anggota ini dapat dibaca dan ditulis.

Nilai Arti
CRED_PERSIST_SESSION
1 (0x1)
Kredensial bertahan selama masa pakai sesi masuk. Ini tidak akan terlihat oleh sesi masuk lain dari pengguna yang sama ini. Ini tidak akan ada setelah pengguna ini keluar dan kembali.
CRED_PERSIST_LOCAL_MACHINE
2 (0x2)
Kredensial bertahan untuk semua sesi masuk berikutnya pada komputer yang sama ini. Ini terlihat oleh sesi masuk lain dari pengguna yang sama ini pada komputer yang sama ini dan tidak terlihat oleh sesi masuk untuk pengguna ini pada komputer lain.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter, dan Windows XP Home Edition: Nilai ini tidak didukung.

CRED_PERSIST_ENTERPRISE
3 (0x3)
Kredensial bertahan untuk semua sesi masuk berikutnya pada komputer yang sama ini. Ini terlihat oleh sesi masuk lain dari pengguna yang sama ini pada komputer yang sama ini dan untuk sesi masuk untuk pengguna ini pada komputer lain.

Opsi ini dapat diimplementasikan sebagai kredensial yang dipertahankan secara lokal jika administrator atau pengguna mengonfigurasi akun pengguna agar tidak memiliki status roam-able. Misalnya, jika pengguna tidak memiliki profil roaming, kredensial hanya akan bertahan secara lokal.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter, dan Windows XP Home Edition: Nilai ini tidak didukung.

AttributeCount

Jumlah atribut yang ditentukan aplikasi yang akan dikaitkan dengan kredensial. Anggota ini dapat dibaca dan ditulis. Nilainya tidak boleh lebih besar dari CRED_MAX_ATTRIBUTES (64).

Attributes

Atribut yang ditentukan aplikasi yang terkait dengan kredensial. Anggota ini dapat dibaca dan ditulis.

TargetAlias

Alias untuk anggota TargetName. Anggota ini dapat dibaca dan ditulis. Tidak boleh lebih panjang dari CRED_MAX_STRING_LENGTH (256) karakter.

Jika jenis kredensialCRED_TYPE_GENERIC, anggota ini bisa menjadi non-NULL, tetapi manajer kredensial mengabaikan anggota.

UserName

Nama pengguna akun yang digunakan untuk menyambungkan ke TargetName.

Jika Jenis kredensial CRED_TYPE_DOMAIN_PASSWORD, anggota ini dapat berupa DomainName\UserName atau UPN.

Jika Jenis kredensial CRED_TYPE_DOMAIN_CERTIFICATE, anggota ini harus menjadi referensi sertifikat marshal yang dibuat dengan memanggil CredMarshalCredential dengan CertCredential.

Jika jenis kredensialCRED_TYPE_GENERIC, anggota ini bisa menjadi non-NULL, tetapi manajer kredensial mengabaikan anggota.

Anggota ini tidak boleh lebih panjang dari CRED_MAX_USERNAME_LENGTH (513) karakter.

Komentar

Nota

Header wincred.h mendefinisikan CREDENTIAL sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header wincred.h