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); }
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 } }); }
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); }