C# 使用Exchange webservice和windows身份验证连接到Exchange服务器

C# 使用Exchange webservice和windows身份验证连接到Exchange服务器,c#,exchangewebservices,C#,Exchangewebservices,我需要使用以下信息连接到Exchange服务器 服务器URL 电子邮件地址 用户名 密码 在理想情况下,我会提供电子邮件和密码,并使用自动发现进行连接,但是,客户端未启用自动发现,出于安全原因,我无法使用密码。当前我要做的是使用具有连接邮箱权限的windows帐户运行我的windows服务,如: NetworkCredential credentials = CredentialCache.DefaultNetworkCredentials; _service.Url = new Uri

我需要使用以下信息连接到Exchange服务器

服务器URL 电子邮件地址 用户名 密码

在理想情况下,我会提供电子邮件和密码,并使用自动发现进行连接,但是,客户端未启用自动发现,出于安全原因,我无法使用密码。当前我要做的是使用具有连接邮箱权限的windows帐户运行我的windows服务,如:

NetworkCredential credentials = CredentialCache.DefaultNetworkCredentials;    
_service.Url = new Uri(_serverURL);
_service.Credentials = credentials;

问题是,如果windows帐户有多个与其关联的邮箱,它将连接到找到的第一个邮箱。我希望能够连接到指定的邮箱。这可能吗?

该对象实际上没有连接到邮箱,而在EWS中,由于它是SOAP服务,因此没有持久连接。ExchangeService对象保存连接信息,因此当您发出FindFolder、Bind等请求时,它保存EWS端点和要使用的凭据

如果要访问另一个邮箱(而不是在服务对象中指定的安全凭据的邮箱),则只需使用FolderId对象的邮箱重载,例如

FolderId RootFolder = new FolderId(WellKnownFolderName.MsgFolderRoot, "MailboxtoAccess@domain.com");