Compartir a través de


Adición de una clase auxiliar a una instancia de objeto

En los ejemplos de código siguientes se muestra cómo usar ADSI y LDAP para agregar dinámicamente una clase auxiliar a una instancia de objeto existente. En los ejemplos se supone que una clase auxiliar denominada vehicle se define en el esquema de Active Directory y que la clase de vehículo tiene un atributo vin .

Al agregar dinámicamente una clase auxiliar a una instancia de objeto, debe especificar simultáneamente los valores de los atributos mustHave obligatorios de la clase . En los ejemplos siguientes se muestra cómo hacerlo con el atributo "vin", que se supone que es obligatorio.

En el siguiente ejemplo de C++ se enlaza a un objeto y se usa IADs.PutEx para anexar la clase auxiliar a la lista de clases de la propiedad objectClass del objeto. A continuación, en el ejemplo se usa IADs.Put para establecer el valor del atributo vin . Por último, llama a IADs.SetInfo para confirmar los cambios en el directorio.

LPWSTR pszAuxClass[]={L"vehicle"};
LPWSTR pszVIN[]={L"df897dsfsa-0"};
VARIANT var;

VariantInit(&var);

ADsOpenObject(L"cn=johnd,cn=users,dc=fabrikam,dc=com", 
    NULL, 
    NULL, 
    ADS_SECURE_AUTHENTICATION, 
    IID_IADs,  
    (VOID**)&pIADs);

ADsBuildVarArrayStr(pszAuxClass, 1, &var);
pIADs->PutEx(ADS_PROPERTY_APPEND, CComBSTR("objectClass"), var);
ADsBuildVarArrayStr( pszVIN, 1, &var);
pIADs->Put(CComBSTR("vin"), var);
pIADs->SetInfo();

if(pIADs)
    pIADs->Release();

VariantClear(&var);