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 |
---|---|
|
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. |
|
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.
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.
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 |