批量写入/修改操作的快速绑定选项

绑定目录服务对象时,ADSI 会创建用于表示指定目录对象的 COM 对象。 绑定时,ADSI 通常会检索 objectClass 属性,以便 ADSI 可公开适合该类对象的 COM 接口。 例如,除所有对象支持的基本 ADSI 接口外,用户对象还会公开 IADsUser 接口。 对于单个操作,此特性应不影响性能。 但是,如果执行批处理操作时需要数百或数千个绑定,且这些操作正将数据写入目录服务,则可能需交换完整的对象支持来加快绑定速度。 它被称为快速绑定,且会通过在调用 ADsOpenObjectIADsOpenDSObject::OpenDSObject 时指定 ADS_FAST_BIND 标记来实现。

快速绑定具有以下限制:

  • 必须使用 ADsOpenObject 函数或 IADsOpenDSObject::OpenDSObject 方法来执行绑定操作。 绑定操作会转到目录服务器一次,而不是两次。 ADSI 不会检索 objectClass 属性,因此只会公开该对象的基本 ADSI 接口。

  • COM 对象支持以下接口:

  • 如果使用 IADsContainer::GetObject 方法绑定到子对象,则子对象具有与父对象相同的快速绑定特征。

  • 绑定操作期间不会验证当前绑定到的对象是否存在;因此,如果该对象不存在,后续方法调用则会失败。 因此,快速绑定只应用于已知存在的对象;例如,在执行用于返回所绑定到对象的可分辨名称的查询后直接进行使用。

  • ADSI 扩展将为 top 类的对象公开。 因此,仅会公开上列基本 ADSI 接口的扩展。