【发布时间】:2013-03-13 14:56:19
【问题描述】:
我有一个 WCF 服务正在运行,托管在使用 netTcp 端点公开的 IIS7 上,并使用 Windows 身份验证(Transport 安全性和clientCredentialType="Windows")进行配置,这一切正常。
在服务中,我使用 EWS API 发送电子邮件,并检查 Exchange 服务器上的收件箱。我有这部分工作,就目前而言,我已经通过创建一个 NetworkCredential 对象来手动指定 Credentials 属性以传入。
我想做的是使用调用服务的用户的身份,这样我就可以像他们一样发送邮件并遍历他们的收件箱。
我可以通过使用访问主叫用户详细信息
ServiceSecurityContext.Current.PrimaryIdentity
但这会返回一个 IIdentity 对象,而不是我创建与 Exchange 服务器的连接所需的凭据。
如果没有密码,我显然无法创建NetworkCredential 对象,而我没有密码,而且据我所知,我无法从IIdentity 对象创建NetworkCredential。
必须有办法实现这一点。欢迎所有建议。
【问题讨论】:
标签: c# wcf exchangewebservices