У меня есть служба WCF, работающая на IIS7, которая открыта с использованием конечной точки netTcp и настроена с использованием проверки подлинности Windows (Transport
и clientCredentialType="Windows"
), и все это работает нормально.Передача NetworkCredential через службу WCF для использования с API EWS
В службе я использую API EWS для отправки электронной почты и проверки входящих ящиков на сервере Exchange. У меня это частично работает, поскольку на данный момент в разработке я вручную задал свойство Credentials, создав объект NetworkCredential
для передачи.
Что я хочу сделать, это использовать идентификацию пользователя сервис, чтобы я мог отправлять почту в виде их и перебирать через свой почтовый ящик.
я могу получить доступ к призывающей информации о пользователях с помощью
ServiceSecurityContext.Current.PrimaryIdentity
но это возвращает IIdentity
объекта, а не учетные данные мне нужно, чтобы создать соединение с сервером Exchange.
Я не могу создать объект NetworkCredential
без пароля, которого у меня нет, и из того, что я вижу, я не могу создать NetworkCredential
из объекта IIdentity
.
Должен быть способ достижения этого. Все предложения приветствуются.
Отличная идея, и я надеялся, но это бросает исключение: 'тип инициализатора для«Microsoft.Exchange.WebServices.Data.ExchangeServiceBase»бросил exception.' –
Какое исключение? Может быть, вам нужно настроить делегацию, чтобы она работала? – Slava
Если ваш удаленный клиент подключается к вашему серверу, а ваш сервер вызывает сервер Exchange (на удаленном компьютере), делегирование необходимо настроить для вашего сервера. – Slava