0
votes

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

2

2 Answers

2
votes

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

Sample:

var credentials = new WebCredentials(
    "[email protected]", "password", "");

var exchange = new ExchangeService{PreAuthenticate=true, Credentials=credentials};
exchange.ImpersonatedUserId = new ImpersonatedUserId(
    ConnectingIdType.SmtpAddress, 
    "[email protected]");

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