没有域名的C#代码访问交换服务器,这可能吗?

时间:2011-07-11 15:16:32

标签: c# asp.net exchangewebservices exchange-server-2010

我正在开发一个Web应用程序来访问Exchange Server 2010以从服务器获取电子邮件。问题是,我们没有此服务器的域名。我所知道的是它的IP地址。是否可以使用Exchange Web服务访问服务器?这是我的代码:

ExchangeService服务=新的ExchangeService(ExchangeVersion.Exchange2010);         service.Credentials = new NetworkCredential(“StevenZack”,“123456”,“208.243.49.20”);         //service.AutodiscoverUrl("stevenzack@mail2.local“);         service.Url = new Uri(“https://208.243.49.20/EWS/Exchange.asmx”);         FindItemsResults findResults = service.FindItems(             WellKnownFolderName.Inbox,             新的ItemView(10));

    foreach (Item item in findResults.Items)
    {
        div_email.InnerHtml = item.Subject + "<br />";
    }

出现错误“远程证书根据验证程序无效”

如何应对这种情况?任何的想法?谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

通过设置ServicePointManager.ServerCertificateValidationCallback委托可以避免SSL警告(请参阅http://www.infinitec.de/post/2008/11/26/ExchangeWebServices-WebDAV-and-untrusted-server-certificates.aspx)。

但这可能对你没有帮助。如果指定208.243.49.20,则使用计算机本地帐户而不是域帐户连接到计算机。

您是否可以使用集成身份验证?您可以冒充用户并直接使用他的凭证。这样,用户不必再次输入他的凭证。请注意,如果Web应用程序与Exchange服务器位于不同的服务器上,则需要配置Kerberos。