Fungsi LsaStorePrivateData (ntsecapi.h)
Jangan gunakan fungsi data privat LSA atau enkripsi dan dekripsi data generik. Sebagai gantinya, gunakan fungsi CryptProtectData dan CryptUnprotectData . Hanya gunakan fungsi data privat LSA saat perlu memanipulasi rahasia LSA seperti yang didokumenkan dalam Model Data Objek Rahasia
Sintaks
NTSTATUS LsaStorePrivateData(
[in] LSA_HANDLE PolicyHandle,
[in] PLSA_UNICODE_STRING KeyName,
[in] PLSA_UNICODE_STRING PrivateData
);
Parameter
[in] PolicyHandle
Handel ke objek Policy . Handel harus memiliki akses POLICY_CREATE_SECRET yang tepat jika ini adalah pertama kalinya data disimpan di bawah kunci yang ditentukan oleh parameter KeyName . Untuk informasi selengkapnya, lihat Membuka Penanganan Objek Kebijakan.
[in] KeyName
Penunjuk ke struktur LSA_UNICODE_STRING yang berisi nama kunci tempat data privat disimpan.
[in] PrivateData
Arahkan ke struktur LSA_UNICODE_STRING yang berisi data privat untuk disimpan. Fungsi mengenkripsi data ini sebelum menyimpannya.
Jika parameter ini NULL, fungsi menghapus data privat apa pun yang disimpan di bawah kunci dan menghapus kunci. Upaya berikutnya untuk mengambil data dari kunci akan mengembalikan kode kesalahan STATUS_OBJECT_NAME_NOT_FOUND.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah STATUS_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan adalah kode NTSTATUS. Untuk informasi selengkapnya, lihat Nilai Pengembalian Fungsi Kebijakan LSA.
Anda dapat menggunakan fungsi LsaNtStatusToWinError untuk mengonversi kode NTSTATUS ke kode kesalahan Windows.
Keterangan
Fungsi LsaStorePrivateData dapat digunakan oleh aplikasi server untuk menyimpan kata sandi klien dan komputer.
Seperti yang dijelaskan dalam Objek Data Privat, objek data privat mencakup tiga jenis khusus: lokal, global, dan mesin. Objek khusus diidentifikasi dengan awalan dalam nama kunci: "L$" untuk objek lokal, "G$" untuk objek global, dan "M$" untuk objek mesin. Objek lokal tidak dapat diakses dari jarak jauh. Objek mesin hanya dapat diakses oleh sistem operasi.
Selain awalan ini, nilai berikut juga menunjukkan objek lokal atau mesin. Nilai-nilai ini didukung untuk kompatibilitas mundur dan tidak boleh digunakan saat Anda membuat objek lokal atau mesin baru. Nama kunci objek data privat lokal mungkin juga "$machine.acc", "SAC", "SAI", "SANSC", atau dimulai dengan "RasDialParms" atau "RasCredentials". Nama kunci untuk objek mesin juga dapat dimulai dengan, "NL$" atau "sc".
Objek data privat yang tidak menggunakan salah satu konvensi nama kunci sebelumnya dapat diakses dari jarak jauh dan tidak direplikasi ke domain lain.
Data yang disimpan oleh fungsi LsaStorePrivateData tidak benar-benar dilindungi. Namun, data dienkripsi sebelum disimpan, dan kunci memiliki DACL yang hanya memungkinkan pembuat dan administrator untuk membaca data.
Gunakan fungsi LsaRetrievePrivateData untuk mengambil nilai yang disimpan oleh LsaStorePrivateData.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | ntsecapi.h |
Pustaka | Advapi32.lib |
DLL | Advapi32.dll |