Ejemplo n.º 1
0
        public async Task RemoveLoginAsync(ApplicationUser user, string loginProvider, string providerKey, CancellationToken cancellationToken)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (string.IsNullOrEmpty(loginProvider))
            {
                throw new ArgumentNullException(nameof(loginProvider), "Null or empty");
            }

            if (string.IsNullOrEmpty(providerKey))
            {
                throw new ArgumentNullException(nameof(providerKey), "Null or empty");
            }

            try
            {
                await RemoveAllTokensAsync(user, loginProvider, cancellationToken);

                var userLoginEntity = new IdentityUserLoginEntity(loginProvider, providerKey, user.Id);
                await _appDb.GenericRepository.DeleteEntityAsync(userLoginEntity, cancellationToken);
            }
            catch (Exception e)
            {
                var msg = $"LoginInfo for provider '{loginProvider}' and user id '{user.Id}' could not be removed";
                _logger.LogError(msg, e);
                throw;
            }
        }
        public virtual void CanAddAndFindByUserId()
        {
            using (var uow = DataService.StartUnitOfWork())
            {
                var user = new IdentityUserEntity
                {
                    Identifier        = Guid.NewGuid(),
                    Name              = "Achim Schnell",
                    NormalizedName    = "ACHIM SCHNELL",
                    Email             = "*****@*****.**",
                    NormalizedEmail   = "*****@*****.**",
                    AccessFailedCount = 0,
                    ApplicationId     = 0,
                    EmailConfirmed    = true,
                    IsAnonymous       = false,
                    LastActivityDate  = DateTime.Now
                };

                uow.UserRepository.Add(user);

                var login = new IdentityUserLoginEntity
                {
                    UserId              = user.Identifier,
                    ProviderName        = "Google",
                    ProviderKey         = "MyKey",
                    ProviderDisplayName = null
                };
                uow.LoginRepository.Add(login);
                Assert.AreEqual(login.ProviderKey,
                                uow.LoginRepository.FindByUserId(user.Identifier).Single().ProviderKey);
            }
        }
Ejemplo n.º 3
0
        public async Task AddLoginAsync(ApplicationUser user, UserLoginInfo login, CancellationToken cancellationToken)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (login == null)
            {
                throw new ArgumentNullException(nameof(login));
            }

            try
            {
                var userLoginEntity = new IdentityUserLoginEntity(login.LoginProvider, login.ProviderKey, user.Id)
                {
                    ProviderDisplayName = login.ProviderDisplayName
                };
                await _appDb.GenericRepository.SaveEntityAsync(userLoginEntity, true, false, cancellationToken);
            }
            catch (Exception e)
            {
                var msg = $"LoginInfo for provider '{login.LoginProvider}' and user id '{user.Id}' could not be added";
                _logger.LogError(msg, e);
                throw;
            }
        }