深入探索 Active Directory 操作与搜索
1. 缓存机制
为减少网络传输,ADSI(Active Directory Services Interface)采用对象属性缓存。创建 DirectoryEntry
对象时不会访问服务器,首次从目录存储读取值时,所有属性会写入缓存,后续访问属性无需往返服务器。
1.1 缓存操作
- 写入更改 :对对象的更改仅影响缓存对象,设置属性不会产生网络流量。需调用
DirectoryEntry.CommitChanges()
刷新缓存并将更改数据传输到服务器。 - 读取新数据 :使用
DirectoryEntry.RefreshCache()
从目录存储读取属性。若在未调用CommitChanges()
时调用RefreshCache()
,更改将丢失。 - 关闭缓存 :可将
DirectoryEntry.UsePropertyCache
属性设置为false
关闭缓存,但除非调试代码,否则不建议关闭,会增加与服务器的往返次数。
1.2 示例代码
using (DirectoryEntry de = new DirectoryEntry(