如何从asp应用程序访问Exchange日历

时间:2013-05-28 20:32:29

标签: c# asp.net calendar exchange-server impersonation

我的任务是编写一个必须能够访问用户交换日历的.NET应用程序。此应用程序只能从本地网络访问,我需要自动使用当前域用户凭据来访问交换。

我有以下代码,但收到错误消息“该帐户无权模拟所请求的用户。”

ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
string exchange = "exchangeWSURL";
service.Url = new Uri(exchange);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, userid);
service.PreAuthenticate = true;
CalendarView cal = new CalendarView(startDate, startDate.AddDays(7));
FindItemsResults<Appointment> findResults = service.FindAppointments(WellKnownFolderName.Calendar, cal);

看起来我做错了什么。我希望现在必须为域中的所有用户启用模拟。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

本文提供了您正在寻找的内容。请注意关于“冒充”的段落。这似乎完全符合您的需求。

ASP.NET and Exchange tips and samples

答案 1 :(得分:0)

从MSDN复制:

  

您必须先配置Exchange服务器以允许模拟   您的应用程序可以使用模拟。有关更多信息,请参阅   配置Exchange模拟(Exchange Web服务)。

https://msdn.microsoft.com/en-us/library/dd633680(v=exchg.80).aspx
https://msdn.microsoft.com/en-us/library/bb204095(exchg.140).aspx