обмен веб-сервисами 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 = "[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 вместо использования сетевых учетных данных или имени пользователя/пароля?


person Seph    schedule 09.05.2011    source источник


Ответы (1)


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

        ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
person user1813251    schedule 09.07.2013