Accessing other user calendar using service accoun

2019-06-08 19:36发布

问题:

We are trying to integrate office 365 using EWS managed API's. We have created one service account with impersonation role using office 365 admin center. Now, how can we use that service account to access other user's data(like mails, contacts, calendar) in the application ? Thanks, Rohit

回答1:

You create an instance of ExchangeService as usual and then set its ImpersonatedUserId.

Sample:

var credentials = new WebCredentials(
    "impersonateduser@your.onmicrosoft.com", "password", "");

var exchange = new ExchangeService{PreAuthenticate=true, Credentials=credentials};
exchange.ImpersonatedUserId = new ImpersonatedUserId(
    ConnectingIdType.SmtpAddress, 
    "calendaruser@your.onmicrosoft.com");

After this you can access the other user's (in this case calendaruser) data.



回答2:

http://msdn.microsoft.com/en-us/library/office/dn722377(v=exchg.150).aspx and all of its sub-topics is a good place to start.