У меня есть проблема, и я не могу найти решение:
У меня есть приведенный ниже код для получения пользователя электронной почты (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;
Для некоторых пользователей (пока трое) электронная почта (EmailAddress
) имеет нулевое значение.
Я также пробовал код ниже, и происходит то же самое:
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, но не могу сказать из-за недостатка знаний.
Кто-нибудь может помочь?