Я использую библиотеки API MVC Office 365, и я хотел бы архивировать следующее: Вход в учетные записи пользователя, где я знаю имя пользователя и пароль, а затем получаю записи календаря.Office 365 API MVC Authentification
Что мне до сих пор является код, который делает это перенаправление и просит пользователя ввести учетные данные. Но как я могу войти в систему для них, не спрашивая? Идея состоит в том, чтобы автоматически вводить записи календаря для каждого пользователя (скажем, 20 из них) каждые несколько минут.
public static async Task<IEvent[]> GetCalendarEvents()
{
var client = await EnsureClientCreated();
// Obtain calendar event data
var eventsResults = await (from i in client.Me.Events
where i.End >= DateTimeOffset.UtcNow
select i).Take(10).ExecuteAsync();
var events = eventsResults.CurrentPage.OrderBy(e => e.Start).ToArray();
return events;
}
public static async Task<ExchangeClient> EnsureClientCreated()
{
var _discoveryContext = await CacheHelper.GetDiscoveryContext();
var dcr = await _discoveryContext.DiscoverResourceAsync(ServiceResourceId);
return new ExchangeClient(ServiceEndpointUri, async() =>
{
return (await _discoveryContext.AuthenticationContext.AcquireTokenByRefreshTokenAsync(new SessionCache().Read("RefreshToken"),
new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(_discoveryContext.AppIdentity.ClientId, _discoveryContext.AppIdentity.ClientSecret),
ServiceResourceId))
.AccessToken;
});
}