Bagikan melalui


Fungsi DsMakeSpnA (dsparse.h)

Fungsi DsMakeSpn membangun nama perwakilan layanan (SPN) yang mengidentifikasi instans layanan.

Aplikasi klien menggunakan fungsi ini untuk menyusun SPN, yang digunakannya untuk mengautentikasi instans layanan. Misalnya, klien dapat meneruskan SPN dalam parameter pszTargetName dari fungsi InitializeSecurityContext.

Sintaksis

DSPARSE DWORD DsMakeSpnA(
  [in]           LPCSTR ServiceClass,
  [in]           LPCSTR ServiceName,
  [in, optional] LPCSTR InstanceName,
  [in]           USHORT InstancePort,
  [in, optional] LPCSTR Referrer,
  [in, out]      DWORD  *pcSpnLength,
  [out]          LPSTR  pszSpn
);

Parameter

[in] ServiceClass

Penunjuk ke string yang dihentikan null konstanta yang menentukan kelas layanan. Parameter ini dapat menjadi string apa pun yang unik untuk layanan tersebut; baik nama protokol, misalnya, ldap, atau bentuk string GUID dapat diterima.

[in] ServiceName

Penunjuk ke string yang dihentikan null konstanta yang menentukan nama DNS, nama NetBIOS, atau nama khusus (DN). Parameter ini harus non-null.

Untuk informasi selengkapnya tentang bagaimana parameter ServiceName, InstanceName dan InstancePort digunakan untuk membuat SPN, lihat bagian Keterangan berikut.

[in, optional] InstanceName

Penunjuk ke string yang dihentikan null konstanta yang menentukan nama DNS atau alamat IP host untuk instans layanan.

Jika ServiceName menentukan nama DNS atau NetBIOS komputer host layanan, parameter InstanceName harus NULL.

Jika ServiceName menentukan nama domain DNS, nama catatan DNS SRV, atau nama khusus, seperti DN titik koneksi layanan, parameter InstanceName harus menentukan nama DNS atau NetBIOS komputer host layanan.

[in] InstancePort

Nomor port untuk instans layanan. Gunakan 0 untuk port default. Jika parameter ini nol, SPN tidak menyertakan nomor port.

[in, optional] Referrer

Penunjuk ke string yang dihentikan null konstanta yang menentukan nama DNS host yang memberikan rujukan alamat IP. Parameter ini diabaikan kecuali parameter ServiceName menentukan alamat IP.

[in, out] pcSpnLength

Penunjuk ke variabel yang berisi panjang, dalam karakter, dari buffer yang akan menerima SPN baru yang dibangun. Nilai ini mungkin 0 untuk meminta ukuran buffer akhir terlebih dahulu.

Parameter pcSpnLength juga menerima panjang sebenarnya dari SPN yang dibuat, termasuk karakter null yang mengakhiri.

[out] pszSpn

Penunjuk ke string null-terminated yang menerima SPN yang dibangun. Buffer ini harus panjang yang ditentukan oleh pcSpnLength. Parameter pszSpn mungkin NULL untuk meminta ukuran buffer akhir terlebih dahulu.

Mengembalikan nilai

Jika fungsi mengembalikan SPN, nilai yang dikembalikan adalah ERROR_SUCCESS. Jika fungsi gagal, nilai pengembalian dapat menjadi salah satu kode kesalahan berikut.

Komentar

Format SPN yang dihasilkan oleh fungsi DsMakeSpn tergantung pada parameter input. Ada dua format dasar. Kedua format dimulai dengan string ServiceClass diikuti dengan nama komputer host dan komponen InstancePort opsional.

Catatan Format ini digunakan oleh layanan berbasis host.
 

Untuk menghasilkan SPN dengan format "<ServiceClass>/<host>"

  1. Atur parameter ServiceName ke nama DNS komputer host untuk instans layanan. Ini adalah komponen host SPN.
  2. Atur parameter InstanceName dan Referer ke NULL.
  3. Atur parameter InstancePort ke nol. Jika InstancePort bukan nol, SPN memiliki format berikut:
    <service class>/<host>:<instance port>/<referrer>
    
Catatan Format ini digunakan oleh layanan yang dapat direplikasi.
 

Untuk menghasilkan SPN dengan>host<ServiceClass>/<:<InstancePort>"

  1. Atur parameter InstanceName ke nama DNS komputer host untuk instans layanan. Ini adalah komponen host.
  2. Atur parameter ServiceName ke string yang mengidentifikasi instans layanan. Misalnya, itu bisa menjadi nama khusus dari titik koneksi layanan untuk instans layanan ini.
  3. Atur parameter Referen ke null.
  4. Atur parameter InstancePort ke nol. Jika InstancePort bukan nol, SPN memiliki format berikut:
    <service class>/<host>:<instance port>/<service name>
    
Parameter Referen hanya digunakan jika parameter ServiceName menentukan alamat IP komputer host layanan. Dalam hal ini, Referen menentukan nama DNS komputer yang memberikan alamat IP sebagai rujukan. SPN memiliki format berikut:
<service class>/<host>:<instance port>/<referrer>

di mana komponen host adalah string InstanceName atau string ServiceName jika InstanceName NULL , dan komponen InstancePort bersifat opsional.

Parameter string tidak dapat menyertakan karakter garis miring (/), karena digunakan untuk memisahkan komponen SPN.

Nota

Header dsparse.h mendefinisikan DsMakeSpn sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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 Vista
server minimum yang didukung Windows Server 2008
Platform Target Windows
Header dsparse.h (termasuk Ntdsapi.h)
Pustaka Ntdsapi.lib
DLL Ntdsapi.dll

Lihat juga

Fungsi Pengendali Domain dan Manajemen Replikasi

InitializeSecurityContext