Active Directory: DirectoryEntry Update Property
今天遇到一個處理Active Directory的 bug,
原本的Code是
if(value!=string.Empty){
usr.Properties[key].Value = value;
}
遇到空白就不處理 ?! 即然原因不可考 ,
只好將其導向正軌 , 程式碼如下,
不過因為偷懶, 所以只接受type::string的value參數 …
若有其它型別參數, 也可以如法炮製
private void UpdateUserProperty(DirectoryEntry usr, string key, string value) {
if (usr == null) {
return;
}
if (usr.Properties.Contains(key)) {
if (!usr.Properties[key].Value.Equals(value)) {
if (value == null || string.Empty.Equals(value.Trim())) {
usr.Properties[key].RemoveAt(0);
} else {
usr.Properties[key].Value = value;
}
}
} else {
if (value == null || string.Empty.Equals(value.Trim())) {
// If the property not exist and value is empty, doesn't need to add property.
}else{
usr.Properties[key].Add(value);
}
}
}
各欄位更新完要記得CommitChanges才會生效喔
usr.CommitChanges();