Active Directory添加用户属性

时间:2012-08-28 16:06:41

标签: c# active-directory directoryentry

我正在尝试将属性/属性添加到Active Directory中的用户条目。使用以下代码更新属性值时没有任何问题。

string LDAPString = "LDAP://DC=oc,DC=edu";
DirectoryEntry ou = new DirectoryEntry(LDAPString, "fakeUsername", "password");

DirectorySearcher searcher = new DirectorySearcher(ou);
searcher.Filter = "sAMAccountName=" + username;
SearchResult result = searcher.FindOne();

DirectoryEntry user = new DirectoryEntry(result.Path, "fakeUsername", "password");

user.Properties[propertyName].Value = propertyValue;

user.CommitChanges();

user.Dispose();

但是,当我尝试添加新项目并调用CommitChanges()时,会抛出错误:

  

指定的目录服务属性或值不存在。

ExtendedErrorMessage说明如下:

  

00000057:LdapErr:DSID-0C090B8A,注释:属性出错   转换操作,数据0,v1db1

string propertyName = "test";
string propertyValue = "testValue";
user.Properties[propertyName].Add(propertyValue);
user.CommitChanges();

我有一种感觉,我错过了一些简单的东西,但我似乎无法弄明白。

1 个答案:

答案 0 :(得分:0)

我不明白,除非使用值填充,否则通常不会显示属性/属性。由于marc_s暗示该属性已经存在于模式中,因此您只需使用值填充它。