Web Services Exchange Web服务托管API:访问其他用户项目

f45qwnt8  于 2022-11-15  发布在  其他
关注(0)|答案(3)|浏览(120)

是否有可能访问登录用户之外的其他Exchange帐户的文件夹和项目?
是否可以通过Exchange Web服务托管API执行此操作?

q35jwt9p

q35jwt9p1#

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

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

以便使用不同于当前用户的帐户访问Exchange Server Web服务。有关详细信息,请参阅ExchangeService对象说明。
如果您是管理员,则可以将用户设置为impersonation by SMTP address

wbrvyc0a

wbrvyc0a2#

下面介绍如何在不使用模拟或不知道凭据的情况下执行此操作。

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);
p8h8hvxi

p8h8hvxi3#

我建议对每个用户使用模拟而不是登录。通过模拟你可以模拟用户。这和完全访问不同。完全访问是行为上的,模拟是作为。
模拟的一个好处是您只有一个用户名和密码,而不是有x个用户名和密码。
您可以按如下方式使用模拟:

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

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

相关问题