MVC Office 365 API 라이브러리를 사용 중입니다. 다음과 같은 사항을 달성하고자합니다. 사용자 이름/암호를 알고 사용자가 캘린더 항목을 가져 오는 사용자 계정에 로그인합니다.Office 365 API MVC 인증
지금까지 내가 리디렉션하고 사용자에게 자격 증명을 입력하도록 요청하는 코드입니다. 하지만 물어 보지 않고 어떻게 로그인 할 수 있습니까? 아이디어는 모든 사용자에 대해 캘린더 항목을 가져 오는 것입니다 (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;
});
}