private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedNotification context)
 {
     // Upon successful sign in, get & cache a token using MSAL
     string     userId                    = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value;
     TokenCache userTokenCache            = new MsalSessionTokenCache(userId, context.OwinContext.Environment["System.Web.HttpContextBase"] as HttpContextBase).GetMsalCacheInstance();
     ConfidentialClientApplication cc     = new ConfidentialClientApplication(Globals.ClientId, Globals.RedirectUri, new ClientCredential(Globals.ClientSecret), userTokenCache, null);
     AuthenticationResult          result = await cc.AcquireTokenByAuthorizationCodeAsync(context.Code, new[] { "user.readbasic.all" });
 }
Exemple #2
0
        private async Task <string> GetGraphAccessToken(string userId)
        {
            TokenCache userTokenCache            = new MsalSessionTokenCache(userId, HttpContext).GetMsalCacheInstance();
            ConfidentialClientApplication cc     = new ConfidentialClientApplication(Globals.ClientId, Globals.RedirectUri, new ClientCredential(Globals.ClientSecret), userTokenCache, null);
            AuthenticationResult          result = await cc.AcquireTokenSilentAsync(new string[] { "user.readbasic.all" }, cc.Users.First());

            return(result.AccessToken);
        }
        // Use MSAL to get a the token we need for the Microsoft Graph
        private async Task <string> GetGraphAccessToken(string userId, string[] scopes)
        {
            TokenCache userTokenCache        = new MsalSessionTokenCache(userId, HttpContext).GetMsalCacheInstance();
            ConfidentialClientApplication cc = new ConfidentialClientApplication(Globals.ClientId, Globals.RedirectUri, new ClientCredential(Globals.ClientSecret), userTokenCache, null);
            var accounts = await cc.GetAccountsAsync();

            AuthenticationResult result = await cc.AcquireTokenSilentAsync(scopes, accounts.First());

            return(result.AccessToken);
        }