2014-10-01 4 views
1

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

답변

0

늦게 답변. 그러나 당신이 아직도 이것을 찾고 있다면, 또는 다른 누구,이 블로그는 당신이 찾고있는 것일 수 있습니다.

http://blogs.msdn.com/b/exchangedev/archive/2015/01/22/building-demon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow.aspx

데몬/서비스 응용 프로그램은 사용자와 응용 프로그램이 동일한 tennat/조직에서 등록 증명, 사용자를 대신 캘린더 이벤트를 얻을 것이다.