public override async Task <ClaimsPrincipal> CreateAsync(BeAuthIdentity user) { // Classbase operations. var principal = await base.CreateAsync(user); // Fill subscriptions. await _subscriptionService.FillSubscriptions(user); // Issue Identity. var beAuthIdentity = IdentityIssuer.IssueFor(user); // Add identity //principal.AddIdentity(beAuthIdentity); var identity = (ClaimsIdentity)principal.Identity; identity.AddClaims(beAuthIdentity.Claims); return(principal); }
public async Task SetSubscription(string subId) { var user = await GetIdentity(); var sub = user.Subscriptions.FirstOrDefault(p => p.Id == subId); if (sub == null) { throw new Exception("IdentityService >>>> Subscription not found."); } // Generate claims from selected subscription var claims = GetSubscriptionClaims(sub); // Update issuer IdentityIssuer.UpdateClaims(user, claims); // Refresh signin await _signInManager.RefreshSignInAsync(user); }