3

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

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

这使它正常工作,但前提是该网站在其托管的服务器上被调用。如果我在另一个工作站上调用相同的 URL,我会得到 (401) Unauthorized。

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

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

有谁知道这里的罪魁祸首是什么?谢谢!

4

2 回答 2

0

尝试使用:

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

它应该工作。

于 2012-11-29T20:24:18.550 回答
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;

上面的代码对我有用

于 2014-04-22T17:57:38.187 回答