0

AD と統合され、ユーザーをリストし、サイトのメンバーがユーザーの特定のフィールドを編集できるようにする小さなアプリを作成しています。これらのフィールドは、名、姓、表示名、電子メールになります。

次のコードを実行すると、次のような例外が発生します

サーバーはリクエストを処理しようとしません。

編集したい正しい Active Directory ユーザーが含まれておらず、含まれてresultいないことに注意してください。また、タイプであることにnull注意してください。また、AD への接続に使用しているユーザーは管理ユーザーであることにも注意してください。resultSearchResult

DirectoryEntry entryToUpdate = result.GetDirectoryEntry();

entryToUpdate.Properties["cn"].Value = user.Name;
entryToUpdate.Properties["mail"].Value = user.Email;
entryToUpdate.Properties["sn"].Value = user.Surname;
entryToUpdate.Properties["displayName"].Value = user.DisplayName;

string username = user.Email.Substring(0, user.Email.IndexOf("@"));

entryToUpdate.Properties["sAMAccountName"].Value = username;

entryToUpdate.CommitChanges();

何か案は?

4

1 に答える 1

0

私は信じている

entryToUpdate.Properties["cn"].Value = user.Name;

あなたの問題です。givenName を名として使用します。「cn」はシステムが管理しています。

また
、Exchange を使用している場合、メール属性は Exchange によって管理されます。

samAccountName の変更による影響を考慮してください。ユーザーがログイン方法がわからない、疑似 SSO を使用する別のシステムがユーザーを認識しない、ログイン名がローカル プロファイル名と一致しない、などの可能性があります。

于 2013-04-24T17:50:37.393 に答える