创建将连接到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;
有没有人知道这可能是罪魁祸首?谢谢!
答案 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;
上面的代码对我有用