在MSDN你可以發現:
在支持LDAP的常用目錄,沒有一個值的屬性不存在。當通過更改,替換或追加操作將屬性值設置爲非空值時,如果該屬性尚不存在,則會創建該屬性。同樣,如果一個屬性被修改爲沒有值(或值),整個屬性被刪除。有時您可能想要將屬性設置爲null。儘管在支持LDAP的目錄中不存在此概念,但您可以通過完全刪除該屬性並指定要清除該屬性來完成此操作。
下面是使用System.DirectoryServices
一個例子:
/* Connection to Active Directory
*/
DirectoryEntry deBase = new DirectoryEntry("LDAP://192.168.183.220:389/dc=societe,dc=local", "administrateur", "adm");
/* Directory Search
*/
DirectorySearcher dsLookForOUs = new DirectorySearcher(deBase);
dsLookForOUs.Filter = "(objectCategory=organizationalUnit)";
dsLookForOUs.SearchScope = SearchScope.Subtree;
dsLookForOUs.PropertiesToLoad.Add("cn");
dsLookForOUs.PropertiesToLoad.Add("ou");
dsLookForOUs.PropertiesToLoad.Add("telephoneNumber");
SearchResultCollection srcOUs = dsLookForOUs.FindAll();
foreach (SearchResult srOU in srcOUs)
{
Console.WriteLine("{0}", srOU.Path);
DirectoryEntry de = srOU.GetDirectoryEntry();
if (de.Properties["TelephoneNumber"].Value!= null)
{
// Both solutions are working. Don't forget to commit
//de.Properties["TelephoneNumber"].Clear();
de.Properties["TelephoneNumber"].Value=null;
de.CommitChanges();
}
}
輕微修正:屬性是否可以具有任何值(或空值)取決於屬性的語法。例如,IA5String被允許爲零長度。 –
然後這不被視爲'沒有價值',而是'空值'。沒有值真的是空的。 – JPBlanc