调用Exchange Web服务时出现401错误

时间:2012-10-19 05:29:44

标签: iis exchangewebservices http-status-code-401

创建将连接到Exchange Web服务并检索当前用户的收件箱项目的网页。需要集成身份验证。我们不希望任何人登录。

配置IIS以执行Windows身份验证并在web.config中设置以下参数。

这使它工作,但只有在托管它的服务器上调用网站。如果我在另一个工作站上调用相同的URL,我会(401)未经授权。

如果页面在主机服务器上执行时正确地验证了自身的交换,那么当从客户端工作站调用同一页面时,为什么同样的事情不起作用?两种情况下,windows / domain登录用户ID都相同。下面是代码如何针对Exchange进行身份验证。

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://hostname/EWS/Exchange.asmx");
service.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

有没有人知道这可能是罪魁祸首?谢谢!

2 个答案:

答案 0 :(得分:0)

尝试使用:

service.Credentials = new WebCredentials("user", "passwordd", "domain");

它应该有用。

答案 1 :(得分:0)

(401)未经授权的错误意味着您无法登录,因为用户名和密码错误。 你应该尝试这样

        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
        service.Credentials = new NetworkCredential(username, password);
        service.TraceEnabled = true;


        service.Url = new Uri("https://hostname/EWS/Exchange.asmx");
        ExportMIMEEmail(service, count); //call to export mails;

上面的代码对我有用