2

ActiveDirectoryのユーザーエントリにプロパティ/属性を追加しようとしています。次のコードを使用してプロパティ値を更新するのに問題はありません。

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();

シンプルなものが欠けているような気がしますが、理解できないようです。

4

1 に答える 1

0

通常、プロパティ/属性には値が入力されていない限り表示されないことを理解していませんでした。プロパティにほのめかされたmarc_sはすでにスキーマに存在するため、値を入力するだけです。

于 2012-08-29T15:12:42.473 に答える