将辅助类添加到对象实例

以下代码示例演示如何使用 ADSI 和 LDAP 将辅助类动态添加到现有对象实例。 这些示例假定在 Active Directory 架构中定义了名为 vehicle 的辅助类,且该 vehicle 类具有 vin 属性。

将辅助类动态添加到对象实例时,必须同时为类中的所有必需 mustHave 属性指定值。 以下示例演示如何使用“vin”属性执行此操作,而该属性被假定为一个必需属性。

以下 C++ 示例将绑定到对象,并使用 IADs.PutEx 将辅助类追加到该对象的 objectClass 属性中的类列表。 然后,该示例使用 IADs.Put 来设置 vin 属性的值。 最后,它会调用 IADs.SetInfo 以将这些更改提交到目录。

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);