private void InitBlankRow() { for (int i = 0; i < 5; i++) { _users.Add(new UserModel { User = new DataModel.Model.User { UserType = 0, Enable = true, Login = new Guid().ToString(), PasswordHash = SaltedHash.Create("xislkfweorkdf").Hash, PasswordSalt = SaltedHash.Create("xislkfweorkdf").Salt, UserNo = (int.Parse(_users.Max(x => x.User.UserNo) ?? ResourcesHelper.CoustomUserNoStart) + 1) .ToString(), CreatedBy = ResourcesHelper.CurrentUser.Name, CreatedOn = DateTime.Now, LastModifiedBy = ResourcesHelper.CurrentUser.Name, LastModifiedOn = DateTime.Now, }, MemberCardNo = string.Empty }); } }
public LoginCommandValidator(IRepository repository) { _repository = repository; RuleFor(x => x.Username).NotNull().WithMessage("用户名不能为空"); RuleFor(x => x.Password).NotNull().WithMessage("密码不能为空"); Custom(x => { var user = _repository.Query <User>("SELECT * FROM [User] WHERE Username=@Username", new { x.Username }) .FirstOrDefault(); if (user == null) { return(new ValidationFailure("Username", "用户不存在")); } if (!user.IsEnabled) { return(new ValidationFailure("Username", "用户已失效")); } if (!SaltedHash.Create(user.Salt, user.HashedPassword).Verify(x.Password)) { return(new ValidationFailure("Password", "用户名或密码有误")); } return(null); }); }
private void InitBlankRow() { for (int i = 0; i < 5; i++) { _memberCards.Add( new MemberCardModel { MemberCard = new DataModel.Model.MemberCard { MemberType = 0, IsEnable = true, PasswordHash = SaltedHash.Create( ResourcesHelper.SystemSettings[ (short)DataType.SystemSettingCode.DefaultMemberCardPW]).Hash, PasswordSalt = SaltedHash.Create( ResourcesHelper.SystemSettings[ (short)DataType.SystemSettingCode.DefaultMemberCardPW]).Salt, MemberMoney = 0, TotalSurplusMoney = 0, PrincipalSurplusMoney = 0, FavorableSurplusMoney = 0, DispatchDate = DateTime.Now, CreatedBy = ResourcesHelper.CurrentUser.Name, CreatedOn = DateTime.Now, LastModifiedBy = ResourcesHelper.CurrentUser.Name, LastModifiedOn = DateTime.Now, MemberCardNo = ResourcesHelper.MFTMemberCard }, CanUpdate = true }); } }
private GameOperationResponse HandleLoginUser(int sessionId, LoginUser operation) { try { var userData = this.application.UserDatabase.Query <UserData>("UserData/ByUsername") //.Customize(x => x.WaitForNonStaleResultsAsOfNow()) .Select(user => new { user.Username, user.Salt, user.Password }) .FirstOrDefault(user => user.Username.Equals(operation.Username, StringComparison.CurrentCultureIgnoreCase)); if (userData == null) { return(operation.GetErrorResponse((short)ResultCode.IncorrectUsernameOrPassword)); } var passwordHash = SaltedHash.Create(userData.Salt, userData.Password); if (passwordHash.Verify(operation.Password) == false) { return(operation.GetErrorResponse((short)ResultCode.IncorrectUsernameOrPassword)); } // requesting master to authorize client this.peer.SendOperationRequest(new OperationRequest((byte)ServerOperationCode.AckClientUserLogin, new AckClientUserLogin { SessionId = sessionId, Username = userData.Username }), new SendParameters()); return(null); } catch (Exception e) { _logger.Error(e); return(operation.GetErrorResponse((short)ResultCode.Fail)); } }
public void Handle(ResetPasswordCommand command) { var user = _repository.Get <User>(command.UserId); SaltedHash saltedHash = SaltedHash.Create("123456"); user.Salt = saltedHash.Salt; user.HashedPassword = saltedHash.Hash; _repository.Update(user); }
public User Authenticate(string userName, string password) { var user = _fetcher.Query <User>("SELECT * FROM [User] WHERE Username=@Username", new { userName }) .FirstOrDefault(); if (user != null && user.IsEnabled && SaltedHash.Create(user.Salt, user.HashedPassword).Verify(password)) { return(user); } return(null); }
private GameOperationResponse HandleCreateNewUser(int sessionId, CreateUser operation) { try { var username = operation.Username.ToUpper(); var existingUserData = this.application.UserDatabase.Query <UserData>("UserData/ByUsername") //.Customize(x => x.WaitForNonStaleResultsAsOfNow()) .Select(user => new { user.Username }) .FirstOrDefault(user => user.Username.Equals(operation.Username, StringComparison.CurrentCultureIgnoreCase)); if (existingUserData != null) { return(operation.GetErrorResponse((short)ResultCode.UsernameAlreadyExists)); } ResultCode resultCode; if (LoginHelper.IsValidUsername(username, out resultCode) == false) { return(operation.GetErrorResponse((short)resultCode)); } if (LoginHelper.IsValidPassword(operation.Password, out resultCode) == false) { return(operation.GetErrorResponse((short)resultCode)); } var passwordHash = SaltedHash.Create(operation.Password); var newUserInfo = new UserData { Id = UserData.GenerateId(username), Username = username, Salt = passwordHash.Salt, Password = passwordHash.Hash, IsBanned = false, CreatedOn = DateTime.Now, LastLogin = null, }; this.application.UserDatabase.Store(newUserInfo); return(operation.GetErrorResponse((short)ResultCode.Ok)); } catch (Exception e) { _logger.Error(e); return(operation.GetErrorResponse((short)ResultCode.Fail)); } }
public void Handle(CreateUserCommand command) { var user = command.MapToEntity <User>(); user.Roles = new List <Role>(); //foreach (var roleId in command.RoleIds) //{ // user.Roles.Add(_repository.Get<Role>(roleId)); //} SaltedHash saltedHash = SaltedHash.Create(command.ConfirmPassword); user.Salt = saltedHash.Salt; user.HashedPassword = saltedHash.Hash; user.LastLoggedIn = DateTime.Now; _repository.Create(user); }
private void TxtPassword_OnKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { var memberCard = _memberCardRepository.Query() .FirstOrDefault(x => x.MemberCardId == _memberCardId); if (memberCard != null && SaltedHash.Create(memberCard.PasswordSalt, memberCard.PasswordHash).Verify(txtPassword.Password)) { IsCheckOK = true; Close(); } else { MessageBox.Show("密码不正确!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Error); txtPassword.Clear(); } } }
public void Handle(ChangePasswordCommand command) { var user = _repository.Get <User>(command.UserId); if (!SaltedHash.Create(user.Salt, user.HashedPassword).Verify(command.OldPassword)) { throw new CommandValidationException("旧密码不正确"); } if (command.Password != command.ConfirmPassword) { throw new CommandValidationException("两次密码输入不一致"); } SaltedHash saltedHash = SaltedHash.Create(command.Password); user.Salt = saltedHash.Salt; user.HashedPassword = saltedHash.Hash; _repository.Update(user); }
private void LoginCheck() { string login = TextLogin.Text; string password = TextPassword.Password; if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password)) { return; } DataModel.Model.User user = _userRepository.Query().SingleOrDefault(x => x.Login == login); if (user != null && SaltedHash.Create(user.PasswordSalt, user.PasswordHash).Verify(password)) { ResourcesHelper.CurrentUserRolePermission = new RolePermission((DataType.UserType)user.UserType); ResourcesHelper.SystemSettings = _systemSettingRepository.Query() .Where(x => x.IsEnable) .ToList() .ToDictionary(x => short.Parse(x.SettingCode), x => x.SettingValue); ResourcesHelper.CurrentUser = user; if (CheckBoxLogin.IsChecked.HasValue && CheckBoxLogin.IsChecked.Value) { Settings.Default.Login = login; Settings.Default.Save(); } MainWindow mainWindow = new MainWindow(); mainWindow.Show(); Close(); } else { MessageBox.Show("用户名和密码不正确!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Error); } }
private void SaveUserWithMemberCard() { if (_memberCard != null) { DataModel.Model.User bindingUser = _userRepository.GetByUserId(_userId); if (_memberCard.RelateUserId.HasValue) { try { if (!ComparePasswordEqual()) { return; } SaltedHash saltedHash = SaltedHash.Create(txtFirstPassWord.Password); _memberCard.PasswordHash = saltedHash.Hash; _memberCard.PasswordSalt = saltedHash.Salt; _memberCard.MemberCardlogs.Add(new DataModel.Model.MemberCardLog { ChangedBy = ResourcesHelper.CurrentUser.Name, DateChanged = DateTime.Now, NewValue = string.Format("会员: {0}与购物卡: {1}重新设置密码!", bindingUser.Name, _memberCard.MemberCardNo) }); _memberCardRepository.Update(_memberCard); _unitOfWork.Commit(); MessageBox.Show("密码设置成功!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { Log4NetHelper.WriteLog(ex.ToString()); MessageBox.Show("密码设置失败!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Error); } } else { try { if (!ComparePasswordEqual()) { return; } SaltedHash saltedHash = SaltedHash.Create(txtFirstPassWord.Password); _memberCard.PasswordHash = saltedHash.Hash; _memberCard.PasswordSalt = saltedHash.Salt; _memberCard.DispatchUserId = ResourcesHelper.CurrentUser.UserId; _memberCard.RelateUserId = _userId; _memberCard.MemberCardStatus = (sbyte)DataType.MemberCardStatus.Active; _memberCard.MemberCardlogs.Add(new DataModel.Model.MemberCardLog { ChangedBy = ResourcesHelper.CurrentUser.Name, DateChanged = DateTime.Now, PrincipalMoney = _memberCard.PrincipalSurplusMoney, FavorableMoney = _memberCard.FavorableSurplusMoney, LogType = (sbyte)DataType.MemberCardLogType.Saved, NewValue = string.Format(ResourcesHelper.MemberCardLogUserFormat, bindingUser.Name, _memberCard.MemberCardNo, _memberCard.PrincipalSurplusMoney.ToString("F2")) }); _memberCardRepository.Update(_memberCard); DataModel.Model.User user = _userRepository.GetByUserId(_userId); user.CashTotal = _memberCard.TotalSurplusMoney; user.CashFee = _memberCard.FavorableSurplusMoney; user.CashBalance = _memberCard.PrincipalSurplusMoney; _userRepository.Update(user); _unitOfWork.Commit(); MessageBox.Show("购物卡绑定成功!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { Log4NetHelper.WriteLog(ex.ToString()); MessageBox.Show("购物卡绑定失败!", Properties.Resources.SystemName, MessageBoxButton.OK, MessageBoxImage.Error); } } _user.ExecuteSearchText(); Close(); } }