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);
        }
예제 #2
0
        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);
        }