Bagikan melalui


Struktur CREDENTIALA (wincred.h)

Struktur INFO MASUK berisi kredensial individual.

Sintaks

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;

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 Makna
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 JenisCRED_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 TypeCRED_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 JenisCRED_TYPE_DOMAIN_PASSWORD atau CRED_TYPE_DOMAIN_CERTIFICATE.

Type

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

Nilai Makna
CRED_TYPE_GENERIC
1 (0x1)
Kredensial adalah kredensial generik. 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)
Kredensial 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)
Kredensial 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: Kredensial 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. Anggota TargetName dan Type 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 JenisCRED_TYPE_DOMAIN_PASSWORD atau CRED_TYPE_DOMAIN_CERTIFICATE, anggota ini mengidentifikasi server atau server tempat kredensial akan 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 dapat 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 bisa 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 kredensial default untuk sementara.

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 menerapkan 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 anggota CredentialBlob . 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 JenisCRED_TYPE_DOMAIN_PASSWORD, anggota ini berisi kata sandi Unicode teks biasa untuk Nama Pengguna. Anggota 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 JenisCRED_TYPE_DOMAIN_CERTIFICATE, anggota ini berisi PIN Unicode uji yang jelas untuk Nama Pengguna. Anggota CredentialBlob dan CredentialBlobSize tidak menyertakan karakter nol berikutnya. Selain itu, anggota ini hanya dapat dibaca oleh paket autentikasi.

Jika anggota JenisCRED_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 Makna
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 log 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 log-masuk lain dari pengguna yang sama ini pada komputer yang sama ini dan 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 kredensial CRED_TYPE_GENERIC, anggota ini bisa 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 bisa menjadiNama PenggunaDomainName 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 kredensial CRED_TYPE_GENERIC, anggota ini bisa non-NULL, tetapi manajer kredensial mengabaikan anggota.

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

Keterangan

Catatan

Header wincred.h mendefinisikan CREDENTIAL sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header wincred.h