Esempio n. 1
0
        public ClaimsPrincipal SignIn(string email, string password)
        {
            var user = userProvider.GetUserByEmail(email);

            if (user.IsNullOrDefault() || !PBFDF2Hash.Verify(password, user.Password))
            {
                throw new WrongPasswordException();
            }

            if (!user.Active)
            {
                throw new DeactivatedException();
            }

            var permissions      = permissionProvider.GetPermissions(user);
            var permissionClaims = permissions.Select(x => new Claim($"{Claims.Permission}{x.Action}", x.Id.ToString()));

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Name, user.Email),
                new Claim(ClaimTypes.GivenName, user.Firstname),
                new Claim(ClaimTypes.Surname, user.Lastname),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(Claims.UserId, user.Id.ToString()),
            };

            claims.AddRange(permissionClaims);

            var userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal    = new ClaimsPrincipal(userIdentity);

            return(principal);
        }
Esempio n. 2
0
 private List <User> GetUsers()
 {
     return(new List <User>
     {
         new User
         {
             Id = 1,
             Email = "*****@*****.**",
             Password = PBFDF2Hash.Hash("7EG3OGnB5VN3hZTT"),
             Firstname = "Thymon",
             Lastname = "Arens",
             ResetToken = string.Empty,
             ResetTokenDate = null,
             Active = true
         },
         new User
         {
             Id = 2,
             Email = "system",
             Password = string.Empty,
             Firstname = "System",
             Lastname = "System",
             ResetToken = string.Empty,
             ResetTokenDate = null,
             Active = false
         }
     });
 }
Esempio n. 3
0
        public override void Process(ResetPasswordViewModel viewModel)
        {
            var user = userProvider.GetUserByToken(viewModel.Token);

            if (user.IsNullOrDefault() ||
                !user.ResetTokenDate.HasValue ||
                user.ResetTokenDate.Value.AddHours(12) < DateTime.Now)
            {
                return;
            }

            user.Password       = PBFDF2Hash.Hash(viewModel.Password);
            user.ResetToken     = string.Empty;
            user.ResetTokenDate = null;

            userService.AddOrUpdate(user);
        }