【问题标题】:EWS Search Calendar with Service Account带有服务帐户的 EWS 搜索日历
【发布时间】:2013-08-26 17:03:52
【问题描述】:

我正在使用以下代码从日历中返回项目。当我连接到用户的实际凭据时,我得到了 10 个项目,正如预期的那样。当我作为服务帐户连接时,我总是得到 0。服务帐户有权查看和更新​​用户的日历。为什么没有返回任何结果?

            // Connect to Exchange Web Services
            service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);

            --> service.Credentials = new WebCredentials("svc_user", "svc_password", "domain");
            --> //service.Credentials = new WebCredentials("user", "password", "domain");
            service.AutodiscoverUrl("user@domain");

            //Return count
            ItemView view = new ItemView(10);
            view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Calendar, view);
            MessageBox.Show(findResults.Count().ToString());

【问题讨论】:

    标签: c# calendar exchangewebservices service-accounts


    【解决方案1】:

    我必须为服务提供 ImpersonatedUserId 的值:

            // Connect to Exchange Web Services
            service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
    
            service.Credentials = new WebCredentials("svc_user", "svc_password", "domain");
            service.AutodiscoverUrl("user@domain");
            service.ImpersonatedUserId = new ImpersonatedUserID(ConnectingIdType.SmtpAddres, "user@domain");
    
            //Return count
            ItemView view = new ItemView(10);
            view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Calendar, view);
            MessageBox.Show(findResults.Count().ToString());
    

    我的假设是,通过在用户的商店上运行自动发现,默认情况下会发生模拟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多