Обмен веб-сервисами x509 Certivicate

Я пытаюсь подключиться к веб-службам Exchange и отправить электронное письмо от имени пользователя через собственную веб-службу (ASP/WCF). Мой код работает нормально при запуске на настольном ПК, способном подключиться к серверу обмена, но при работе через Интернет доступ к серверу обмена невозможен, поэтому я пытаюсь подключиться через свой веб-сервер.

Я ищу способы входа в систему как другой пользователь без использования олицетворения веб-служб Exchange (как мне сказали, не использовать его, если нет абсолютно никакого другого способа) и без предоставления пользователем пароля.

У меня есть следующий код:

Dim service As New Microsoft.Exchange.WebServices.Data.ExchangeService(Microsoft.Exchange.WebServices.Data.ExchangeVersion.Exchange2007_SP1)
Dim emailAddress As String = "example@example.com"
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 вместо использования сетевых учетных данных или имени пользователя / пароля

1 ответ

Я использовал это без ошибок

        ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
Другие вопросы по тегам