我正在尝试创建一个 ASP.NET (.NET 3.5) 网站以通过 Exchange Web 服务连接到我们的 Exchange 2010 服务器,当我定义要进行身份验证的用户名、密码和域时,我能够连接到 EWS,但我想,如果可能的话,不要在我的代码中包含登录详细信息。
在 IIS 中,我在我拥有的站点的 web.config 中为站点启用了集成 Windows 身份验证<authentication mode="Windows"/>
。
以下代码是我一直在使用的代码:
svc.UseDefaultCredentials = True
svc.Credentials = New WebCredentials()
svc.Url = New Uri(svcURL)
使用上面的代码,我收到了消息:
当以没有邮箱的帐户发出请求时,您必须为任何可分辨文件夹 Id 指定邮箱主 SMTP 地址。
当我尝试使用svc.Credentials = CredentialCache.DefaultNetworkCredentials
(代替svc.Credentials = New WebCredentials()
)时,我收到错误消息:
无法将“System.Net.SystemNetworkCredential”类型的对象转换为“Microsoft.Exchange.WebServices.Data.ExchangeCredentials”类型。
如前所述,唯一有效的方法是通过硬编码用户登录详细信息来定义要进行身份验证的用户凭据,我宁愿不这样做:svc.Credentials = New WebCredentials("username","password","domain")
是否有人能够使用 ASP.NET 网站中当前登录用户的凭据向 EWS 进行身份验证?