Fungsi ADsOpenObject (adshlp.h)
Fungsi ADsOpenObject mengikat objek ADSI menggunakan kredensial nama pengguna dan kata sandi eksplisit. ADsOpenObject adalah fungsi pembungkus untuk IADsOpenDSObject dan setara dengan metode IADsOpenDSObject::OpenDsObject .
Sintaks
HRESULT ADsOpenObject(
[in] LPCWSTR lpszPathName,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwReserved,
[in] REFIID riid,
[out] void **ppObject
);
Parameter
[in] lpszPathName
Jenis: LPCWSTR
String Unicode yang dihentikan null yang menentukan ADsPath dari objek ADSI. Untuk informasi selengkapnya dan contoh kode string pengikatan untuk parameter ini, lihat LDAP ADsPath dan WinNT ADsPath.
[in] lpszUserName
Jenis: LPCWSTR
String Unicode yang dihentikan null yang menentukan nama pengguna untuk diberikan ke layanan direktori yang akan digunakan untuk kredensial. String ini harus selalu dalam format "<domain\><user name>" untuk menghindari ambiguitas. Misalnya, jika DomainA dan DomainB memiliki hubungan kepercayaan dan kedua domain memiliki pengguna dengan nama "user1", tidak mungkin untuk memprediksi domain mana yang akan digunakan ADsOpenObject untuk memvalidasi "user1".
[in] lpszPassword
Jenis: LPCWSTR
Untai (karakter) Unicode yang dihentikan null yang menentukan kata sandi untuk diberikan ke layanan direktori yang akan digunakan untuk kredensial.
[in] dwReserved
Jenis: DWORD
Bendera autentikasi khusus penyedia yang digunakan untuk menentukan opsi pengikatan. Untuk informasi selengkapnya, lihat ADS_AUTHENTICATION_ENUM.
[in] riid
Jenis: REFIID
Pengidentifikasi antarmuka untuk antarmuka yang diminta pada objek ini.
[out] ppObject
Jenis: VOID**
Arahkan ke penunjuk ke antarmuka yang diminta.
Menampilkan nilai
Jenis: HRESULT
Metode ini mendukung nilai pengembalian HRESULT standar, termasuk yang berikut ini.
Untuk informasi selengkapnya, lihat Kode Kesalahan ADSI.
Keterangan
Fungsi ini tidak boleh digunakan hanya untuk memvalidasi kredensial pengguna.
Klien C/C++ memanggil fungsi pembantu ADsOpenObject untuk mengikat objek ADSI, menggunakan nama pengguna dan kata sandi yang disediakan sebagai kredensial untuk layanan direktori yang sesuai. Jika lpszUsername dan lpszPasswordadalah NULL dan ADS_SECURE_AUTHENTICATION diatur, ADSI mengikat objek menggunakan konteks keamanan utas panggilan, yang merupakan konteks keamanan akun pengguna tempat aplikasi berjalan atau akun pengguna klien yang ditiru oleh utas panggilan.
Kredensial yang diteruskan ke fungsi ADsOpenObject hanya digunakan dengan objek tertentu yang terikat dan tidak memengaruhi konteks keamanan utas panggilan. Ini berarti bahwa, dalam contoh di bawah ini, panggilan ke ADsOpenObject akan menggunakan kredensial yang berbeda dari panggilan ke ADsGetObject.
HRESULT hr;
IADs *padsRoot1;
IADs *padsRoot2;
hr = ADsOpenObject(L"LDAP://rootDSE",
pwszUsername,
pwszPassword,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(LPVOID*)&padsRoot1);
hr = ADsGetObject(L"LDAP://rootDSE",
IID_IADs,
(LPVOID*)&padsRoot2);
Untuk bekerja dengan penyedia WinNT: , Anda dapat meneruskan lpszUsername sebagai salah satu string berikut:
- Nama akun pengguna, yaitu, "jeffsmith".
- Nama pengguna gaya Windows, yaitu, "Fabrikam\jeffsmith".
- Nama akun pengguna, seperti "jeffsmith". Untuk menggunakan nama pengguna dengan sendirinya, Anda hanya harus mengatur bendera ADS_SECURE_AUTHENTICATION di parameter dwReserved .
- Jalur pengguna dari versi Windows sebelumnya, seperti "Fabrikam\jeffsmith".
- Nama Yang Dibedakan, seperti "CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=Com". Untuk menggunakan DN, parameter dwReserved harus nol atau harus menyertakan bendera ADS_USE_SSL .
- Nama Prinsipal Pengguna (UPN), seperti "jeffsmith@Fabrikam.com". Untuk menggunakan UPN, tetapkan nilai UPN yang sesuai untuk atribut userPrincipalName dari objek pengguna target.
Contoh kode berikut menunjukkan cara mengikat objek layanan direktori dengan kredensial pengguna yang diminta.
IADs *pObject;
LPWSTR szUsername = NULL;
LPWSTR szPassword = NULL
HRESULT hr;
// Insert code to securely retrieve the user name and password.
hr = ADsOpenObject(L"LDAP://CN=Jeff,DC=Fabrikam,DC=com",
"jeffsmith",
"etercespot",
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(void**) &pObject);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | adshlp.h |
Pustaka | Activeds.lib |
DLL | Activeds.dll |