#exchangewebservices
#exchangewebservices
Вопрос:
У меня есть клиентское приложение, написанное с использованием EWS Managed API 1.1. Вот ситуация:
- Клиент не запускается на компьютере в том же домене, что и сервер Exchange.
- У меня есть имя пользователя и пароль пользователя, но нет его адреса электронной почты.
- Нет общего имени пользователя (например, ABC123 001234) и адреса электронной почты (например joe.bloggs@company.com ).
Я могу нормально подключаться к EWS, отправлять сообщения и т.д.
Однако моему программному обеспечению необходимо обнаружить адрес электронной почты аутентифицированного пользователя, и по разным причинам требований не может просто попросить пользователя предоставить его.
Я предполагал, что смогу получить такую простую деталь обратно из веб-службы, но я в тупике!
Возможно ли это как для 2007, так и для 2010 годов?
Спасибо!
Ответ №1:
Возможно, вы сможете сделать это с помощью ExchangeService.ResolveName
. Я попробовал это со следующим примером кода API, управляемого EWS, в Exchange 2007, и это сработало как нельзя лучше:
var service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://serv/EWS/exchange.asmx");
service.Credentials = new NetworkCredential("001234", "PasswordForUser001234", "Domain");
ServicePointManager.ServerCertificateValidationCallback = (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) =>
{
return true;
};
var resolvedNames = service.ResolveName("001234");
foreach (var resolvedName in resolvedNames)
{
Console.WriteLine(resolvedName.Mailbox.Address);
}