11

是否可以访问除登录用户之外的其他 Exchange 帐户的文件夹和项目?

我可以通过 Exchange Web 服务托管 API 执行此操作吗?

4

3 回答 3

15

是的,这是可能的,但您应该知道其他用户的密码或以某种方式获取此凭据(NetworkCredential对象)。您代码的典型第一行可能是

ExchangeService myService = new ExchangeService (ExchangeVersion.Exchange2007_SP1);
myService.Credentials = new NetworkCredential ("user@mycorp.local", "P@ssword00");

因此您可以使用当前用户的其他帐户访问 Exchange Server Web 服务。有关详细信息,请参阅ExchangeService 对象描述。

如果您是管理员,您可以通过 SMTP 地址进行用户模拟

于 2010-09-29T22:55:54.540 回答
4

知道密码是错误的并且使用模拟(这些天)是错误的。

这是你如何做到的。

        ExchangeService _service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
        //CREDENTIALS OF AN ACCOUNT WHICH HAS READ ACCESS TO THE CALENDAR YOU NEED
        _service.Credentials = new WebCredentials(username, password);
        _service.Url = new Uri(serviceURL);

        SearchFilter.SearchFilterCollection searchFilter = new SearchFilter.SearchFilterCollection();
        searchFilter.Add(new SearchFilter.IsGreaterThanOrEqualTo(AppointmentSchema.Start, DateTime.Now.AddDays(-1)));
        searchFilter.Add(new SearchFilter.IsLessThanOrEqualTo(AppointmentSchema.Start, DateTime.Now.AddDays(2)));
        ItemView view = new ItemView(50);
        view.PropertySet = new PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.AppointmentType, AppointmentSchema.End);

        //THIS NEXT LINE!!!
        var calendarSearch = new FolderId(WellKnownFolderName.Calendar, new Mailbox("email@ofsomemailbox.com"));
        var appointments = _service.FindItems(calendarSearch, searchFilter, view);
于 2014-09-29T17:22:21.737 回答
0

我建议对每个用户使用模拟而不是登录。通过模拟,您可以模拟用户。它不像完全访问一样。完全访问权限是行为,模仿是行为。

模拟的前提是您有一个用户名和密码,而不是有 x 个用户名和密码。

您可以像这样使用模拟:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new NetworkCredential(appName, appPassword, emailDomain);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, userToImpersonate);

当用户对其他人具有委托访问权限时,您可以访问其他用户的文件夹。例如:人 A 将被模拟并且能够访问人 B

于 2012-08-23T06:33:04.170 回答