c# - 使用 Exchange Web 服务和 Windows 身份验证连接到 Exchange Server
问题描述
我处于需要使用以下信息连接到 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");
推荐阅读
- java - Junit 期望值异常
- javascript - Rxjs:防止将数据推送到服务之外的主题
- google-chrome - 1Password Chrome 扩展如何实现圆角?
- ios - 设置 button.frame.origin 不会快速更改 scrollView 中的位置
- python - 使用 import random python 生成不同的随机数
- database - 将数据导入 SiteFinity
- ionic-framework - 找不到错误 io.branch.referral.InstallListener 类崩溃 Ionic v5
- apache-kafka - Kafka 流应用程序在 Windows Kafka 集群故障转移中使用“exactly-once”语义卡住了重新平衡 _transation_state
- oracle - oracle数据库创建时如何配置audit_trail='db,extended'?
- google-bigquery - 如何基于两个表的连接计算 SQL 百分比,每个分配只显示一行