Bagikan melalui


Fungsi panggilan balik SpInitLsaModeContextFn (ntsecpkg.h)

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
ISC_REQ_DELEGATE
Server diizinkan untuk meniru klien.
ISC_REQ_MUTUAL_AUTH
Klien dan server diperlukan untuk membuktikan identitas mereka.
ISC_REQ_REPLAY_DETECT
Konteks keamanan akan mendukung deteksi paket yang diputar ulang.
ISC_REQ_SEQUENCE_DETECT
Konteks keamanan akan mendukung deteksi pesan yang tidak berurutan.
ISC_REQ_USE_SESSION_KEY
Kunci sesi baru harus dinegosiasikan.
ISC_REQ_PROMPT_FOR_CREDS
Jika klien adalah pengguna interaktif, paket harus, jika memungkinkan, meminta kredensial yang sesuai kepada pengguna.
ISC_REQ_USE_SUPPLIED_CREDS
Buffer input berisi informasi kredensial khusus paket yang harus digunakan untuk mengautentikasi koneksi.
ISC_REQ_ALLOCATE_MEMORY
Paket harus mengalokasikan memori. Pemanggil akhirnya harus memanggil fungsi FreeContextBuffer untuk membebaskan memori yang dialokasikan oleh paket.
ISC_REQ_USE_DCE_STYLE
Pemanggil mengharapkan transaksi autentikasi timbal balik tiga kaki.
ISC_REQ_DATAGRAM
Saluran komunikasi jenis datagram harus digunakan. Untuk informasi selengkapnya, lihat Konteks Datagram.
ISC_REQ_CONNECTION
Saluran komunikasi jenis koneksi harus digunakan. Untuk informasi selengkapnya lihat Konteks Berorientasi Koneksi.
ISC_REQ_EXTENDED_ERROR
Jika konteks gagal, buat pesan balasan kesalahan untuk dikirim kembali ke klien.
ISC_REQ_STREAM
Saluran komunikasi jenis aliran harus digunakan. Untuk informasi selengkapnya, lihat konteks Stream.
ISC_REQ_INTEGRITY
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

Lihat juga

AllocateLsaHeap

InitializeSecurityContext (Umum)

SECPKG_FUNCTION_TABLE

SpAcceptLsaModeContext

SpLsaModeInitialize

Timestamp