Office 365 API MVC Authentification
本文关键字:Authentification MVC API Office | 更新日期: 2023-09-27 18:25:07
我正在使用MVC Office 365 API库,我想归档以下内容:登录用户帐户,在那里我知道用户名/密码,然后获取日历条目。
到目前为止,我所拥有的是进行重定向并要求用户输入凭据的代码。但是我怎么能在不询问的情况下为他们登录呢?这个想法是每隔几分钟自动获取每个用户(比如说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;
});
}
我知道答案很晚。但如果你还在寻找这个,或者其他人,这个博客可能就是你想要的。
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/组织下注册。