Я пытаюсь подключиться к веб-службам Exchange, чтобы отправить электронное письмо от имени пользователя через мою собственную веб-службу (ASP/WCF). Мой код отлично работает при работе на настольном ПК, способном подключиться к серверу обмена, но при работе через Интернет сервер обмена недоступен, поэтому вместо этого я пытаюсь подключиться через свой веб-сервер.
Я ищу способы войти в систему как другой пользователь без использования олицетворения веб-служб Exchange (поскольку мне сказали не использовать это, если нет абсолютно другого способа) и без предоставления пользователем своего пароля.
У меня есть следующий код:
Dim service As New Microsoft.Exchange.WebServices.Data.ExchangeService(Microsoft.Exchange.WebServices.Data.ExchangeVersion.Exchange2007_SP1)
Dim emailAddress As String = "[email protected]"
System.Net.ServicePointManager.ServerCertificateValidationCallback = AddressOf CertificateValidationCallBack
Dim cert As New System.Security.Cryptography.X509Certificates.X509Certificate2(HttpContext.Current.Request.ClientCertificate.Certificate)
service.Credentials = New Microsoft.Exchange.WebServices.Data.WebCredentials(New System.Security.Cryptography.X509Certificates.X509Certificate())
service.UseDefaultCredentials = False
Но это не работает из-за исключения Unable to cast object of type 'System.Security.Cryptography.X509Certificates.X509Certificate' to type 'System.Net.ICredentials'.
.
Может ли кто-нибудь указать мне, как я могу использовать сертификат X509 для аутентификации в веб-службах Exchange вместо использования сетевых учетных данных или имени пользователя/пароля?