问题是什么?
我们在VS2013中有一个Exchange Server 2010 SP2,IIS 7.5和一个控制台应用程序。
所以我们做了以下事情:
TimeZoneInfo timeZone = TimeZoneInfo.Local;
ExchangeService EWSservice = new ExchangeService(ExchangeVersion.Exchange2010_SP2, timeZone);
//EWSservice.Url = new Uri("our url");
EWSservice.AutodiscoverUrl("my@mail.com", RedirectionUrlValidationCallback);
定义网址的两种方式都有效。 试图设置凭据:
EWSservice.Credentials = new WebCredentials("my@mail.com", "mypass");
这也有效。但我想通过使用当前的Windows用户凭据进行连接。一些已使用和崩溃的代码示例:
EWSservice.Credentials = new
WebCredentials(CredentialCache.DefaultCredentials);
EWSservice.UseDefaultCredentials = true;
EWSservice.Credentials =
(NetworkCredential)CredentialCache.DefaultCredentials;
所有这些都返回了401错误:未经授权
此外,我已经像这样编辑了 app.config - 但它不起作用:
<authentication mode="Windows">
</authentication>
<identity impersonate="false"/>
<!--Other stuff-->
</authentication>
然后,我已阅读有关身份验证模式的信息并发现: Windows User getting "access denied" from exchange server
管理员已设置此委托选项,但连接仍无法正常工作...
现在我添加了这个:
EWSservice.TraceEnabled = true;
我在控制台中收到了Exchange响应:
HTTP/1.1 401 Unauthorized
Content-Length: 0
Date: Wed, 20 Apr 2016 07:59:01 GMT
Set-Cookie: exchangecookie=bfab7cdda62a4bf8be5b43689199fcf6; expires=Thu, 20-Apr
-2017 07:59:02 GMT; path=/; HttpOnly
Server: Microsoft-IIS/7.5
WWW-Authenticate: Basic realm="our-domain"
X-Powered-By: ASP.NET
有什么想法吗?