Поделиться через


Метод GetInfo

Метод IADs::GetInfo загружает все значения атрибутов для объекта ADSI в локальный кэш из базовой службы каталогов. Метод IADs::GetInfoEx используется для загрузки определенных значений атрибутов в локальный кэш. Дополнительные сведения об использовании метода IADs::GetInfoEx см. в разделе "Оптимизация с помощью GetInfoEx".

ADSI сделает неявный вызов IADs::GetInfo, когда метод IADs::Get или IADs::GetEx вызывается для определенного атрибута, и значение не найдено в локальном кэше. При вызове IADs::GetInfo неявный вызов не повторяется. Если значение уже существует в кэше свойств, однако вызов IADs::Get или IADs::GetEx без первого вызова IADs::GetInfo получит кэшированное значение, а не самое текущее значение из базового каталога. Это может привести к перезаписи обновленных значений атрибутов, если локальный кэш был изменен, но значения не были зафиксированы в базовой службе каталогов с вызовом метода IADs::SetInfo . Чтобы избежать проблем с кэшированием, зафиксируйте изменения значения атрибута путем вызова IADs::SetInfo перед вызовом IADs::GetInfo.

Dim usr As IADs

' Bind to a specific user object.
Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
 
' This code example assumes that the property description has a single value in the directory.
' Be aware that this will IMPLICITLY call GetInfo because at this point GetInfo
' has not yet been called (implicitly or explicitly) on the usr object.
Debug.Print "User's title is " + usr.Get("title")

' Change the attribute value in the local cache.
usr.Put "title", "Vice President"
Debug.Print "User's title is " + usr.Get("title")

' Call GetInfo, which will overwrite the updated value because SetInfo has not 
' been called.
usr.GetInfo
Debug.Print "User's title is " + usr.Get("title")

Некоторые службы каталогов не возвращают все значения атрибутов для объекта в ответ на вызов IADs::GetInfo . В этих случаях используйте метод IADs::GetInfoEx для загрузки этих значений в локальный кэш.