Bagikan melalui


Fungsi CredWriteA (wincred.h)

Fungsi CredWrite membuat kredensial baru atau memodifikasi kredensial yang ada dalam kumpulan kredensial pengguna. Kredensial baru dikaitkan dengan sesi masuk token saat ini. Token tidak boleh menonaktifkan pengidentifikasi keamanan (SID) pengguna.

Sintaksis

BOOL CredWriteA(
  [in] PCREDENTIALA Credential,
  [in] DWORD        Flags
);

Parameter

[in] Credential

Penunjuk ke struktur kredensial yang akan ditulis.

[in] Flags

Bendera yang mengontrol operasi fungsi. Bendera berikut didefinisikan.

Nilai Arti
CRED_PRESERVE_CREDENTIAL_BLOB
BLOB kredensial dari kredensial yang ada dipertahankan dengan nama kredensial dan jenis kredensial yang sama. CredentialBlobSize yang diteruskan dalam struktur Kredensial harus nol.

Mengembalikan nilai

Jika fungsi berhasil, fungsi mengembalikan TRUE.

Jika fungsi gagal, fungsi mengembalikan FALSE. Panggil fungsi GetLastError untuk mendapatkan kode status yang lebih spesifik. Kode status berikut dapat dikembalikan.

Kesalahan kartu pintar lainnya dapat dikembalikan saat menulis kredensial CRED_TYPE_CERTIFICATE.

Mengembalikan kode/nilai Deskripsi
ERROR_NO_SUCH_LOGON_SESSION
Sesi masuk tidak ada atau tidak ada set kredensial yang terkait dengan sesi masuk ini. Sesi masuk jaringan tidak memiliki set kredensial terkait.
ERROR_INVALID_PARAMETER
Bidang tertentu tidak dapat diubah dalam kredensial yang ada. Kesalahan ini dikembalikan jika bidang tidak cocok dengan nilai di bidang terproteksi dari kredensial yang ada.
ERROR_INVALID_FLAGS
Nilai yang tidak valid ditentukan untuk parameter Bendera .
ERROR_BAD_USERNAME
Anggota UserName yang diteruskan dalam struktur Kredensial tidak valid. Untuk deskripsi sintaks nama pengguna yang valid, lihat definisi anggota tersebut.
ERROR_NOT_FOUND
CRED_PRESERVE_CREDENTIAL_BLOB ditentukan dan tidak ada kredensial yang ada oleh TargetName yang sama dan jenis .
SCARD_E_NO_READERS_AVAILABLE
Kredensial CRED_TYPE_CERTIFICATE yang sedang ditulis mengharuskan pembaca kartu pintar tersedia.
SCARD_E_NO_SMARTCARD atau SCARD_W_REMOVED_CARD
Kredensial CRED_TYPE_CERTIFICATE yang sedang ditulis mengharuskan kartu pintar dimasukkan.
SCARD_W_WRONG_CHV
PIN yang salah disediakan untuk kredensial CRED_TYPE_CERTIFICATE sedang ditulis.

Komentar

Fungsi ini membuat kredensial jika kredensial dengan TargetName dan jenis tidak ada. Jika kredensial dengan TargetName dan Jenis yang ditentukan ada, kredensial baru yang ditentukan akan menggantikan yang sudah ada.

Saat fungsi ini menulis kredensial CRED_TYPE_CERTIFICATE,Kredensial -anggota CredentialBlob menentukan PIN yang melindungi kunci privat sertifikat yang ditentukan olehKredensial -anggota UserName. Manajer kredensial tidak mempertahankan PIN. Sebaliknya, PIN diteruskan ke penyedia layanan kriptografi (CSP) yang ditunjukkan pada sertifikat untuk digunakan nanti oleh CSP dan paket autentikasi. CSP mendefinisikan masa pakai PIN. Sebagian besar CSP membersihkan PIN saat penghapusan kartu pintar dari pembaca kartu pintar.

Jika nilai Jenis anggota struktur KREDENSIAL yang ditentukan oleh parameter Kredensial CRED_TYPE_DOMAIN_EXTENDED, namespace harus ditentukan dalam nama target. Fungsi ini tidak mendukung penulisan ke nama target yang berisi kartubebas.

Nota

Header wincred.h mendefinisikan CredWrite sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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]
Platform Target Windows
Header wincred.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

KREDENSIAL