コード例 #1
0
 // Setting the flag FailedToAcquireToken to true
 public async Task HandleIntegratedTokenAcquisitionFailure(MsalAccountActivity failedAccountActivity)
 {
     //failedAccountActivity.FailedToAcquireToken = true;
     //_dbContext.MsalAccountActivities.Update(failedAccountActivity);
     _dbContext.MsalAccountActivities.Remove(failedAccountActivity);
     await _dbContext.SaveChangesAsync();
 }
        // Overriding OnBeforeWriteAsync to upsert the entity MsalAccountActivity
        // before MSAL writes an entry in the token cache
        protected override async Task OnBeforeWriteAsync(TokenCacheNotificationArgs args)
        {
            var accountActivity = new MsalAccountActivity(args.SuggestedCacheKey, args.Account);

            await UpsertActivity(accountActivity);

            await Task.FromResult(base.OnBeforeWriteAsync(args));
        }
        // Call the upsert method of the class that implements IMsalAccountActivityStore
        private async Task <MsalAccountActivity> UpsertActivity(MsalAccountActivity accountActivity)
        {
            using (var scope = _scopeFactory.CreateScope())
            {
                var _integratedTokenCacheStore = scope.ServiceProvider.GetRequiredService <IMsalAccountActivityStore>();

                await _integratedTokenCacheStore.UpsertMsalAccountActivity(accountActivity);

                return(accountActivity);
            }
        }
コード例 #4
0
        // Insert a new MsalAccountActivity case it doesnt exist, otherwise update the existing entry
        public async Task UpsertMsalAccountActivity(MsalAccountActivity msalAccountActivity)
        {
            if (_dbContext.MsalAccountActivities.Count(x => x.AccountCacheKey == msalAccountActivity.AccountCacheKey) != 0)
            {
                _dbContext.Update(msalAccountActivity);
            }
            else
            {
                _dbContext.MsalAccountActivities.Add(msalAccountActivity);
            }

            await _dbContext.SaveChangesAsync().ConfigureAwait(false);
        }