Esempio n. 1
0
        public JsonWebToken Create(DomainUserDto userDto, string[] userRole)
        {
            var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtOptions.SecretKey));
            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var now = DateTime.UtcNow;

            var genericIdentity = BuildClaims(userDto, userRole);

            var expires = now.AddMinutes(_jwtOptions.ExpiryMinutes);

            var jwt = new JwtSecurityToken(
                _jwtOptions.Issuer,
                claims: genericIdentity.Claims,
                notBefore: now,
                expires: expires,
                audience: _jwtOptions.Audience,
                signingCredentials: credentials
                );

            var token = new JwtSecurityTokenHandler().WriteToken(jwt);

            return(new JsonWebToken
            {
                AccessToken = token,
                Identity = genericIdentity.Identity
            });
        }
Esempio n. 2
0
        public void AuthorizeUser(DomainUserDto userDto, HttpContext context)
        {
            var jwt = _jwtProvider.Create(userDto, userDto.Roles);

            context.User        = new ClaimsPrincipal(jwt.Identity);
            userDto.AccessToken = jwt.AccessToken;
        }
Esempio n. 3
0
        public DomainUserDto ProvideLogin(string login, string password)
        {
            var user = new DomainUserDto {
                FirstName = "Garib", LastName = "admin", Login = login, AssignedTeam = "1"
            };

            return(user);
        }
Esempio n. 4
0
        public User CreateUser(DomainUserDto domainUserDto, string password)
        {
            var hashedPassword = _passwordHasher.HashPassword(domainUserDto, password);
            var newUser        = User.Create(null, domainUserDto.Login, domainUserDto.FirstName, domainUserDto.LastName, domainUserDto.DisplayName, null, domainUserDto.UserPricipalName,
                                             hashedPassword, domainUserDto.PhoneNumber, domainUserDto.Email, null, AccountStatusEnum.Active,
                                             null, null);

            Context.Users.Add(newUser);

            return(newUser);
        }
Esempio n. 5
0
        private static GenericPrincipal BuildClaims(DomainUserDto userDto, string[] userRole)
        {
            var claimsIdentity = new ClaimsIdentity("password", ClaimTypes.Name, "AuthApiPolicy");

            claimsIdentity.AddClaims(new List <Claim>()
            {
                new Claim(JwtRegisteredClaimNames.Sub, userDto.Login),
            });

            if (userRole != null)
            {
                claimsIdentity.AddClaim(new Claim(ClaimTypes.Role, string.Join(",", userRole)));
            }

            var genericPrincipal = new GenericPrincipal(claimsIdentity, userRole);

            return(genericPrincipal);
        }