private void UpdateLogin(object parameter) { try { if (SelectedLogin == null) { throw new Exception("Логин не выбран"); } if (string.IsNullOrEmpty(Login.Trim()) || SelectedUser == null || SelectedGroup == null) { throw new Exception("Не заполнены обязательные поля"); } var passwordContainer = parameter as IPasswordContainer; if (!string.Equals(passwordContainer?.HashedPassword, Hasher.Hash(null)) && !string.Equals(passwordContainer?.HashedPassword, passwordContainer?.HashedElsePassword)) { throw new Exception("Пароли не совпадают"); } using (var loginService = _ppsClientViewModel.ServiceProxy.GetPpsChannelFactory <ILoginService>()) { var channel = loginService.CreateChannel(); var changedLogin = new LoginDataContract { LoginId = SelectedLogin.LoginId, Login = Login.Trim(), Password = SelectedLogin.Password, GroupId = SelectedGroup.GroupId, UserId = SelectedUser.UserId }; if (!string.Equals(passwordContainer?.HashedPassword, Hasher.Hash(null))) { changedLogin.Password = passwordContainer?.HashedPassword; } var result = channel.UpdateLogin(SelectedLogin, changedLogin); if (!result.BoolRes || !string.IsNullOrEmpty(result.ErrorRes)) { throw new Exception(result.ErrorRes); } _ppsClientViewModel.UpdateLoginCollection(); _ppsClientViewModel.AddEvent(EventConstants.EVENT_UPD_LOGIN, SelectedLogin.Login); } } catch (Exception ex) { _ppsClientViewModel.WriteLogMessage(string.Concat("Не удалось изменить логин - ", ex.Message)); } }
private void SetPassword() { HashedPassword = Hasher.Hash(PwdBox.SecurePassword); HashedElsePassword = Hasher.Hash(ElsePwdBox.SecurePassword); }
private void BtnOk_Click(object sender, RoutedEventArgs e) { HashedPassword = Hasher.Hash(PwdBox.SecurePassword); PwdBox.Clear(); }
private void ApplyLogin(object parameter) { try { if (string.IsNullOrEmpty(UserId.Trim())) { throw new Exception("Логин не задан"); } var passwordContainer = parameter as IPasswordContainer; if (passwordContainer == null || string.Equals(passwordContainer.HashedPassword, Hasher.Hash(null))) { throw new Exception("Пароль не задан"); } using (var loginService = _ppsClientViewModel.ServiceProxy.GetPpsChannelFactory <ILoginService>()) { var channel = loginService.CreateChannel(); var selected = channel.GetLogin(new LoginDataContract { Login = UserId }); if (!selected.BoolRes) { throw new Exception(selected.ErrorRes); } if (selected.SomeResult == null || !selected.SomeResult.Any()) { throw new Exception("Логин не найден"); } var user = selected.SomeResult.FirstOrDefault(); if (!string.Equals(passwordContainer.HashedPassword, user.Password)) { throw new Exception("Не верный пароль"); } if (!user.GroupName.ToLower().Contains("администратор")) { throw new Exception("Пользователь не администратор"); } if (string.IsNullOrEmpty(user.Certificate)) { throw new Exception("Пустой сертификат"); } SerializeCertificate(user.Certificate); string deviceSerial; var deviceId = GetCurrentMachineId(out deviceSerial); RaiseOnLoginApplied(user.LoginId, deviceId, deviceSerial, user.Login, user.UserName); _ppsClientViewModel.AddEvent(EventConstants.EVENT_LOGON, user.UserName); LoginNotApplied = false; } } catch (Exception ex) { StatusMessage = ex.Message; _ppsClientViewModel.AddEvent(EventConstants.EVENT_ERROR, string.Concat("Ошибка входа. ", ex.Message)); } }