Exemplo n.º 1
0
        private async Task <SignInResult> DoLogin(UserViewModel userIdentity, bool rememberLogin)
        {
            var user = await _userManager.FindByNameAsync(userIdentity.UserName);

            if (user == null)
            {
                await _userAppService.RegisterWithoutPassword(new RegisterWithoutPasswordViewModel()
                {
                    Username = userIdentity.UserName,
                    Name     = userIdentity.Name,
                    Email    = userIdentity.Email
                });

                user = await _userManager.FindByNameAsync(userIdentity.UserName);
            }

            await _userManageAppService.SynchronizeClaims(user.UserName, userIdentity.CustomClaims.Select(s => new ClaimViewModel(s.Type, s.Value)));

            var claims = new List <Claim>()
            {
                new Claim("amr", "pwd"),
                new Claim("amr", "ldap")
            };

            await _signInManager.SignInWithClaimsAsync(user, rememberLogin, claims.ToArray());

            return(SignInResult.Success);
        }
Exemplo n.º 2
0
        public async Task Should_Synchronize_Claims()
        {
            var command = UserViewModelFaker.GenerateUserViewModel().Generate();
            var result  = await _userAppService.Register(command);

            result.Should().BeTrue();
            var userClaims = await _userManagerAppService.GetClaims(command.Username);

            userClaims.FirstOrDefault(f => f.Type == "social_number").Should().NotBeNull();

            var newSSN    = _faker.Person.Ssn();
            var newClaims = new List <ClaimViewModel>()
            {
                new ClaimViewModel("social_number", newSSN)
            };

            await _userManagerAppService.SynchronizeClaims(command.Username, newClaims);

            userClaims = await _userManagerAppService.GetClaims(command.Username);

            userClaims.FirstOrDefault(f => f.Type == "social_number").Should().NotBeNull();
            userClaims.FirstOrDefault(f => f.Type == "social_number").Value.Should().Be(newSSN);
            userClaims.Count(f => f.Type == "social_number").Should().Be(1);
        }