.net 使用CredentialCache.DefaultNetworkCredentials在当前用户上发送电子邮件';代表

.net 使用CredentialCache.DefaultNetworkCredentials在当前用户上发送电子邮件';代表,.net,vb.net,exchange-server,kerberos,exchangewebservices,.net,Vb.net,Exchange Server,Kerberos,Exchangewebservices,存在什么: 允许用户创建约会、输入所需与会者并发送约会请求的web应用程序 我想发生什么: My web app可通过向多个收件人发送约会请求(代表使用web app的用户)。避免EWS的模拟选项 我所尝试的: Dim service As New ExchangeService(TimeZoneInfo.FindSystemTimeZoneById(sNewEmpTZ)) service.Url = New Uri("https://exchange.url") Dim cred As Ne

存在什么
允许用户创建约会、输入所需与会者并发送约会请求的web应用程序

我想发生什么:
My web app可通过向多个收件人发送约会请求(代表使用web app的用户)。避免EWS的模拟选项

我所尝试的:

Dim service As New ExchangeService(TimeZoneInfo.FindSystemTimeZoneById(sNewEmpTZ))
service.Url = New Uri("https://exchange.url")

Dim cred As NetworkCredential = CredentialCache.DefaultNetworkCredentials

service.Credentials = cred

Dim app As Appointment = New Appointment(service)
'build required body, subject, attendees, location, time, date etc.

app.Save(SendInvitationsMode.SendToAllAndSaveCopy)
发生了什么事:
当我通过我的本地主机运行此应用程序时,它会完美地工作-将获取当前用户(我)下的缓存凭据并发送约会请求。当我将此代码推出到我们的开发服务器时,在代码尝试发送约会(app.Save(…))后,我收到以下错误消息:
错误:当以没有邮箱的帐户进行请求时,必须为任何可分辨文件夹ID指定邮箱主SMTP地址。

这说明代码无法获取当前用户的凭据注意:我们的开发服务器正在使用Kerberos进行身份验证,这就是为什么我认为代码应该可以工作的原因

我研究的内容:
在过去的两天里,我一直在查看这个错误消息,但我还没有找到一个类似的解决方案

我还试过什么:
我知道
CredentialCache.DefaultCredentials
本质上是等效的,所以我尝试了

Dim service As New ExchangeService(TimeZoneInfo.FindSystemTimeZoneById(sNewEmpTZ))
service.Url = New Uri("https://exchange.url")

Dim cred As ICredentials = CredentialCache.DefaultCredentials

service.Credentials = cred

Dim app As Appointment = New Appointment(service)
'build required body, subject, attendees, location, time, date etc.

app.Save(SendInvitationsMode.SendToAllAndSaveCopy)
但是对于本地和开发人员,我都会遇到以下错误:
无法将类型为“System.Net.SystemNetworkCredential”的对象强制转换为类型为“Microsoft.Exchange.WebServices.Data.ExchangeCredentials”。

我的问题: 知道我们的开发服务器已设置为使用Kerberos协议,并且用户已通过windows身份验证,为什么
CredentialCache.DefaultNetworkCredentials
无法收集当前用户的凭据

免责声明: 我对windows身份验证的实际工作方式非常陌生。另外,在发布类似的堆栈溢出问题之前,我已经回顾了以下两个与我的问题最相关的问题


  • http://stackoverflow.com/questions/12851705/ad-user-authentication
  • http://stackoverflow.com/questions/949340/getting-networkcredential-for-current-user-c
只是一个猜测,但您是否在打开的情况下尝试过它?

我们希望避免模拟。