Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi SpInitLsaModeContext adalah fungsi pengiriman klien yang digunakan untuk membangun konteks keamanan antara server dan klien.
Fungsi SpInitLsaModeContext dipanggil ketika klien memanggil fungsi InitializeSecurityContext (Umum) dari Antarmuka Penyedia Dukungan Keamanan.
Sintaks
SpInitLsaModeContextFn Spinitlsamodecontextfn;
NTSTATUS Spinitlsamodecontextfn(
[in] LSA_SEC_HANDLE CredentialHandle,
[in] LSA_SEC_HANDLE ContextHandle,
[in] PUNICODE_STRING TargetName,
[in] ULONG ContextRequirements,
[in] ULONG TargetDataRep,
[in] PSecBufferDesc InputBuffers,
[out] PLSA_SEC_HANDLE NewContextHandle,
[out] PSecBufferDesc OutputBuffers,
[out] PULONG ContextAttributes,
[out] PTimeStamp ExpirationTime,
[out] PBOOLEAN MappedContext,
[out] PSecBuffer ContextData
)
{...}
Parameter
[in] CredentialHandle
Opsional. Tangani kredensial yang akan digunakan untuk konteks. CredentialHandle dapat berupa NULL jika parameter ContextHandle bukan NULL.
[in] ContextHandle
Pilihan. Tangani konteks yang akan digunakan sebagai dasar untuk konteks ini. ContextHandle dapat berupa NULL jika parameter CredentialHandle bukan NULL.
[in] TargetName
Pilihan. Arahkan ke UNICODE_STRING yang berisi nama target konteks. Konten TargetName khusus paket dan tidak ditafsirkan oleh LSA.
[in] ContextRequirements
Bendera yang menunjukkan atribut konteks yang diperlukan oleh klien. Atribut konteks aktual dikembalikan dalam parameter ContextAttributes .
Tabel berikut mendaftar nilai-nilai yang valid.
| Nilai | Makna |
|---|---|
|
Server diizinkan untuk meniru klien. |
|
Klien dan server diperlukan untuk membuktikan identitas mereka. |
|
Konteks keamanan akan mendukung deteksi paket yang diputar ulang. |
|
Konteks keamanan akan mendukung deteksi pesan yang tidak berurutan. |
|
Kunci sesi baru harus dinegosiasikan. |
|
Jika klien adalah pengguna interaktif, paket harus, jika memungkinkan, meminta kredensial yang sesuai kepada pengguna. |
|
Buffer input berisi informasi kredensial khusus paket yang harus digunakan untuk mengautentikasi koneksi. |
|
Paket harus mengalokasikan memori. Pemanggil akhirnya harus memanggil fungsi FreeContextBuffer untuk membebaskan memori yang dialokasikan oleh paket. |
|
Pemanggil mengharapkan transaksi autentikasi timbal balik tiga kaki. |
|
Saluran komunikasi jenis datagram harus digunakan. Untuk informasi selengkapnya, lihat Konteks Datagram. |
|
Saluran komunikasi jenis koneksi harus digunakan. Untuk informasi selengkapnya lihat Konteks Berorientasi Koneksi. |
|
Jika konteks gagal, buat pesan balasan kesalahan untuk dikirim kembali ke klien. |
|
Saluran komunikasi jenis aliran harus digunakan. Untuk informasi selengkapnya, lihat konteks Stream. |
|
Integritas buffer diverifikasi; namun, pesan yang diputar ulang dan tidak berurutan tidak akan terdeteksi. |
[in] TargetDataRep
Bendera yang menunjukkan representasi data, seperti pengurutan byte, pada target. Berisi SECURITY_NATIVE_DREP atau SECURITY_NETWORK_DREP.
[in] InputBuffers
Penunjuk ke struktur SecBufferDesc yang berisi pesan balasan sebelumnya dari server. Pertama kali fungsi ini disebut parameter InputBuffers adalah NULL.
[out] NewContextHandle
Pointer yang menerima handel ke konteks keamanan baru. Setelah Anda selesai menggunakan konteks keamanan, lepaskan handel dengan memanggil fungsi SpDeleteContext .
[out] OutputBuffers
Arahkan ke struktur SecBufferDesc yang berisi token keamanan untuk diteruskan kembali ke server.
[out] ContextAttributes
Penunjuk ke bendera yang menentukan atribut konteks baru. Klien meminta sekumpulan atribut menggunakan parameter ContextRequirements . Jika bendera ContextRequirements tidak cocok dengan bendera ContextAttributes , klien harus memutuskan apakah akan melanjutkan atau mengakhiri. Untuk daftar lengkap bendera yang valid, lihat Persyaratan Konteks.
[out] ExpirationTime
Penunjuk ke Tanda Waktu yang menerima waktu kedaluwarsa untuk konteks baru.
[out] MappedContext
Penunjuk ke nilai Boolean. Atur MappedContext ke TRUE jika paket keamanan mengimplementasikan fungsi SSP/AP mode pengguna.
[out] ContextData
Penunjuk ke struktur SecBuffer yang menerima data untuk disalin saat membuat konteks keamanan mode pengguna. Alokasikan memori untuk ContextData menggunakan fungsi AllocateLsaHeap . LSA akan membebaskan memori.
Mengembalikan nilai
Jika fungsi berhasil dan tidak ada lagi pemrosesan yang diperlukan, kembalikan STATUS_SUCCESS. Jika pemrosesan tidak selesai, fungsi harus mengembalikan SEC_I_CONTINUE_NEEDED. Ketika nilai ini dikembalikan, penelepon harus memanggil fungsi InitializeSecurityContext (Umum) lagi.
Jika fungsi gagal membuat konteks keamanan karena alasan lain, fungsi harus mengembalikan kode NTSTATUS yang menunjukkan alasan gagalnya.
Keterangan
Fungsi SpAcceptLsaModeContext adalah fungsi sisi server untuk membuat konteks.
SSP/APs harus mengimplementasikan fungsi SpInitLsaModeContext ; namun, nama aktual yang diberikan untuk implementasi terserah pengembang.
Penunjuk ke fungsi SpInitLsaModeContext tersedia dalam struktur SECPKG_FUNCTION_TABLE yang diterima dari fungsi SpLsaModeInitialize .
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 | ntsecpkg.h |