AD的Cache

使用.Net来访问AD的时候,通常会先创建DirectoryEntry对象,值得注意的是,构建DirectoryEntry对象的时候并没有真正的从AD Server上获取数据。当访问DirectoryEntry的某个属性的时候,会把DirectoryEntry对象中的所有数据获取下来,并将这些数据放到AD的Cache中。有的时候可能需要修改AD对象的一些信息,可能会写如下的代码:

1 using (var de = new DirectoryEntry())
2 {
3 de.Path = "LDAP://magellan/CN=Christian Nagel, " +
4 "OU=thinktecture, DC=cninnovation, DC=local";
5 if (de.Properties.Contains("mobile"))
6 {
7 de.Properties["mobile"][0] = "+43(664)3434343434";
8 }
9 else
10 {
11 de.Properties["mobile"].Add("+43(664)3434343434");
12 }
13 de.CommitChanges();
14 }
de.Properties.Contains("mobile")这句话执行的时候会把DirectoryEntry中的数据放到Cache中,所以之后所做的属性的修改实际上是针对Cache的修改。de.CommitChanges()的意思是,提交修改后的Cache,使之达到真正的修改。

posted @ 2011-06-15 09:58  HelloWorld.Michael  阅读(616)  评论(0)    收藏  举报