Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das folgende C++-Codebeispiel bindet an den Benutzercontainer in der aktuellen Domäne und gibt IADsContainer Schnittstelle für den Container zurück. Weitere Informationen zum Binden an bekannte Objekte finden Sie unter Binding to Well-Known Objects Using WKGUID.
//**********************************************************
//
// GetUsersContainer()
//
// Binds to the well-known Users container in the current domain
// with the current user credentials. GUID_USERS_CONTAINER_W is
// defined in NTDSAPI.H.
//
//*******************************************************************
HRESULT GetUsersContainer(IADsContainer **ppContainer)
{
if(NULL == ppContainer)
{
return E_INVALIDARG;
}
HRESULT hr;
IADs *pRoot;
*ppContainer = NULL;
// Bind to the rootDSE object.
hr = ADsOpenObject(L"LDAP://rootDSE",
NULL,
NULL,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(LPVOID*)&pRoot);
if(SUCCEEDED(hr))
{
VARIANT var;
VariantInit(&var);
// Get the current domain DN.
hr = pRoot->Get(CComBSTR("defaultNamingContext"), &var);
if(SUCCEEDED(hr))
{
// Build the binding string.
LPWSTR pwszFormat = L"LDAP://<WKGUID=%s,%s>";
LPWSTR pwszPath;
pwszPath = new WCHAR[wcslen(pwszFormat) +
wcslen(GUID_USERS_CONTAINER_W) +
wcslen(var.bstrVal)];
if(NULL != pwszPath)
{
swprintf_s(pwszPath,
pwszFormat,
GUID_USERS_CONTAINER_W,
var.bstrVal);
// Bind to the object.
hr = ADsOpenObject(pwszPath,
NULL,
NULL,
ADS_SECURE_AUTHENTICATION,
IID_IADsContainer,
(LPVOID*)ppContainer);
delete pwszPath;
}
else
{
hr = E_OUTOFMEMORY;
}
VariantClear(&var);
}
pRoot->Release();
}
return hr;
}