1

問題があり、解決策が見つかりません:

EmailAddressWebアプリケーションにアクセスしている電子メール()ユーザーを取得するための以下のコードがあります。

var pc = new System.DirectoryServices.AccountManagement.PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain);

var user = System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(pc, System.DirectoryServices.AccountManagement.IdentityType.SamAccountName, username.ToLower());

email = user.EmailAddress;

一部のユーザー(これまでのところ3人)の場合、電子メール(EmailAddress)にはnull値が含まれています。

以下のコードも試してみましたが、同じことが起こります。

string connection = "LDAP://name.org";

DirectoryEntry entry = new DirectoryEntry(connection);

DirectorySearcher dssearch = new DirectorySearcher(entry);

dssearch.Filter = "(sAMAccountName=UserLogin)";

SearchResult sresult = dssearch.FindOne();

DirectoryEntry dsresult = sresult.GetDirectoryEntry();

if (dsresult.Properties.Count > 0)
{
    if (dsresult.Properties["mail"].Count > 0)
        Response.Write("email: " + dsresult.Properties["mail"][0].ToString());
}
else
    Response.Write("<p>não encontrou</p>");

Exchange Serverと関係があるのではないかと疑っていますが、知識が不足しているとは言えません。

誰か助けてもらえますか?

4

1 に答える 1

3

システムは、フォレストとドメインのツリーを使用するアーキテクチャでホストされます。

実装されたコードは、それが実行されているコンテキストのADにアクセスします。

この場合、アプリケーションのコンテキストを担当するADは更新されませんでした。問題を抱えているユーザーは、このADに記入された電子メールアドレスに問題がありませんでした。

そして、それがメインADに相談したとき、このためのいくつかのツールを使用して、情報が正しくそこにあり、混乱を引き起こしました。

いくつかの調査の後、混乱が検出されました。

それでおしまい。問題が解決しました!

ご協力ありがとうございます!

于 2013-04-08T16:04:54.113 に答える