Esempio n. 1
0
        public async Task UpdateLocalAuthIdentity(Auth0Identity user)
        {
            var db = Engine.Services.Resolve <HoodDbContext>();

            db.Entry(user).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            await db.SaveChangesAsync();
        }
Esempio n. 2
0
        public async Task <Auth0Identity> CreateLocalAuthIdentity(string fullAuthUserId, ApplicationUser user, string picture)
        {
            var  authProviderName = fullAuthUserId.Split('|')[0];
            var  authUserId       = fullAuthUserId.Split('|')[1];
            User newAuthUser      = null;

            try
            {
                newAuthUser = await GetUserById(fullAuthUserId);
            }
            catch (Auth0.Core.Exceptions.ErrorApiException)
            {
            }

            var primaryIdentity = user.GetPrimaryIdentity();

            if (newAuthUser == null && primaryIdentity != null)
            {
                newAuthUser = await GetUserById(primaryIdentity.Id);
            }

            if (newAuthUser == null)
            {
                throw new Exception("Could not find the user on the remote service.");
            }

            var identity = newAuthUser.Identities.SingleOrDefault(i => i.UserId == authUserId);

            if (identity == null)
            {
                throw new Exception("Could not find the identity on the remote user profile.");
            }

            var newIdentity = new Auth0Identity(identity);

            if (primaryIdentity == null)
            {
                newIdentity.IsPrimary = true;
            }

            newIdentity.Id          = fullAuthUserId;
            newIdentity.LocalUserId = user.Id;
            newIdentity.Picture     = picture;

            var db = Engine.Services.Resolve <HoodDbContext>();

            db.Add(newIdentity);
            await db.SaveChangesAsync();

            return(newIdentity);
        }