1

나는 문제를 가지고 찾을 수 없습니다 솔루션 :얻기에서 EmailAddress NULL은

내가 웹 응용 프로그램에 액세스하는 전자 메일 (EmailAddress) 사용자를 검색하기 위해 아래의 코드가 있습니다. 일부 사용자 (지금까지 세) 전자 우편 (EmailAddress)에 대한

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; 

는 null 값이 제공됩니다.

은 또한 아래의 코드를 시도하고 같은 일이 발생 : 나는 Exchange Server를 함께 할 수있는 뭔가가 의심스러운입니다

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

,하지만 지식의 부족을 말할 수 없습니다.

아무도 도와 줄 수 있습니까?

답변

2

시스템은 포리스트와 도메인 트리를 사용하는 아키텍처에서 호스팅됩니다.

구현 된 코드는 실행중인 컨텍스트의 AD에 액세스합니다.

이 경우 응용 프로그램의 컨텍스트를 담당하는 AD가 업데이트되지 않았습니다. 문제가있는 사용자는이 광고를 채운 전자 메일 주소가 아닙니다. 그것은이에 대한 몇 가지 도구, 주요 AD 상담 할 때

는 그리고, 정보가 혼란을 야기하는, 제대로 있었다.

일부 조사가 혼동으로 발견 된 후.

그게 전부입니다. 문제 해결됨!

협력 해 주셔서 감사합니다.

+0

그래서 whats the solution ????? –

+0

응용 프로그램이 실행되고있는 컨텍스트의 AD 업데이트. –

+0

같은 문제가 발생했습니다. 코드에 아무런 문제가 없었습니다. 잘못된 데이터를 가진 AD 서버 자체였습니다. –