2014-10-01 236 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; 
    }); 
} 

回答