Funzione ADsOpenObject (adshlp.h)
La funzione ADsOpenObject viene associata a un oggetto ADSI usando le credenziali esplicite del nome utente e della password. ADsOpenObject è una funzione wrapper per IADsOpenDSObject ed è equivalente al metodo IADsOpenDSObject::OpenDsObject .
Sintassi
HRESULT ADsOpenObject(
[in] LPCWSTR lpszPathName,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwReserved,
[in] REFIID riid,
[out] void **ppObject
);
Parametri
[in] lpszPathName
Tipo: LPCWSTR
Stringa Unicode con terminazione Null che specifica ADsPath dell'oggetto ADSI. Per altre informazioni ed esempi di codice di stringhe di associazione per questo parametro, vedere LDAP ADsPath e WinNT ADsPath.
[in] lpszUserName
Tipo: LPCWSTR
Stringa Unicode con terminazione Null che specifica il nome utente da fornire al servizio directory da usare per le credenziali. Questa stringa deve essere sempre nel formato "<domain\><user name>" per evitare ambiguità. Ad esempio, se DomainA e DomainB hanno una relazione di trust e entrambi i domini hanno un utente con il nome "user1", non è possibile prevedere quale dominio ADsOpenObject userà per convalidare "user1".
[in] lpszPassword
Tipo: LPCWSTR
Stringa Unicode con terminazione Null che specifica la password da fornire al servizio directory da usare per le credenziali.
[in] dwReserved
Tipo: DWORD
Flag di autenticazione specifici del provider usati per definire le opzioni di associazione. Per altre informazioni, vedere ADS_AUTHENTICATION_ENUM.
[in] riid
Tipo: REFIID
Identificatore di interfaccia per l'interfaccia richiesta in questo oggetto.
[out] ppObject
Tipo: VOID**
Puntatore a un puntatore all'interfaccia richiesta.
Valore restituito
Tipo: HRESULT
Questo metodo supporta i valori restituiti HRESULT standard, inclusi i seguenti.
Per altre informazioni, vedere Codici di errore ADSI.
Commenti
Questa funzione non deve essere usata solo per convalidare le credenziali utente.
Un client C/C++ chiama la funzione helper ADsOpenObject per l'associazione a un oggetto ADSI, usando il nome utente e la password specificati come credenziali per il servizio directory appropriato. Se lpszUsername e lpszPassword sono NULL e ADS_SECURE_AUTHENTICATION è impostato, ADSI viene associato all'oggetto usando il contesto di sicurezza del thread chiamante, ovvero il contesto di sicurezza dell'account utente in cui l'applicazione è in esecuzione o dell'account utente client rappresentato dal thread chiamante.
Le credenziali passate alla funzione ADsOpenObject vengono usate solo con l'oggetto specifico associato a e non influiscono sul contesto di sicurezza del thread chiamante. Ciò significa che, nell'esempio seguente, la chiamata a ADsOpenObject userà credenziali diverse rispetto alla chiamata a 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);
Per usare il provider WinNT: è possibile passare lpszUsername come una delle stringhe seguenti:
- Nome di un account utente, ovvero "jeffsmith".
- Nome utente di stile Windows, ovvero "Fabrikam\jeffsmith".
- Nome di un account utente, ad esempio "jeffsmith". Per usare un nome utente da solo, è necessario impostare solo il flag ADS_SECURE_AUTHENTICATION nel parametro dwReserved .
- Percorso utente da una versione precedente di Windows, ad esempio "Fabrikam\jeffsmith".
- Nome distinto, ad esempio "CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=Com". Per usare un DN, il parametro dwReserved deve essere zero oppure deve includere il flag ADS_USE_SSL .
- Nome entità utente (UPN), ad esempio "jeffsmith@Fabrikam.com". Per usare un UPN, assegnare il valore UPN appropriato per l'attributo userPrincipalName dell'oggetto utente di destinazione.
Nell'esempio di codice seguente viene illustrato come eseguire l'associazione a un oggetto servizio directory con le credenziali utente richieste.
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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | adshlp.h |
Libreria | Activeds.lib |
DLL | Activeds.dll |