如何通过当前Windows用户凭据连接到Exchange Server

本文关键字:连接 Exchange Server 用户 何通过 Windows | 更新日期: 2024-10-19 02:05:40

问题出在哪里

我们在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);

定义url的两种方法都有效。尝试设置凭据:

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用户获取";访问被拒绝";来自交换服务器

管理员已经设置了此委派选项,但连接仍然无法工作。。。

现在我添加了这个:

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

有什么想法吗?

如何通过当前Windows用户凭据连接到Exchange Server

我认为你的方法是不可能的,但你可能想看看这个……

如何获取当前用户';s C#中的Active Directory详细信息