我的任务是编写一个必须能够访问用户交换日历的.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);
看起来我做错了什么。我希望现在必须为域中的所有用户启用模拟。
任何帮助都会很棒。
答案 0 :(得分:0)
本文提供了您正在寻找的内容。请注意关于“冒充”的段落。这似乎完全符合您的需求。
答案 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