我正在尝试连接到 Exchange Web 服务,以通过我自己的 Web 服务 (ASP/WCF) 代表用户发送电子邮件。我的代码在能够连接到交换服务器的台式 PC 上运行时工作正常,但是在通过 Internet 操作时无法访问交换服务器,因此我试图通过我的 Web 服务器进行连接。
我正在寻找在不使用 Exchange Web 服务模拟的情况下以其他用户身份登录的方法(因为我被告知不要使用它,除非绝对没有其他方法)并且用户不提供密码。
我有以下代码:
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 Web 服务进行身份验证,而不是使用网络凭据或用户名/密码