public async Task <User> RegisterAsync(string username, string password, string firstName, string lastName, string role) { var user = await _dataContext.Users.SingleOrDefaultAsync(u => u.Username == username); if (user != null) { throw new LogicException("Пользователь с указанным именем уже существует"); } user = new User(username, BC.HashPassword(password), firstName, lastName, role); _dataContext.Users.Add(user); await _dataContext.SaveChangesAsync(); GenerateToken(user); return(user.WithoutPassword()); }
private void MaterialRaisedButton2_Click(object sender, EventArgs e) { try { if (txtLogin.Text == "" || txtPass.Text == "" || txtName.Text == "" || txtF.Text == "" || txtMail.Text == "" || txtPass2.Text == "") { MaterialMessageBox.Show("Пожалуйста заполните все поля", "Упс... Что-то пошло не так", MessageBoxButtons.OK); } else if (txtPass.Text != txtPass2.Text) { MaterialMessageBox.Show("Пароль не совпадают", "Упс... Что-то пошло не так", MessageBoxButtons.OK); } else { using (SqlConnection sqlcon = new SqlConnection(connectionString)) { sqlcon.Open(); SqlCommand sqlCmd = new SqlCommand("SotrAdd", sqlcon); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCmd.Parameters.AddWithValue("Id_sotr", 0); sqlCmd.Parameters.AddWithValue("Sost_sotr", ""); sqlCmd.Parameters.AddWithValue("I_sotr", txtName.Text.Trim()); sqlCmd.Parameters.AddWithValue("F_sotr", txtF.Text.Trim()); sqlCmd.Parameters.AddWithValue("O_sotr", txtO.Text.Trim()); sqlCmd.Parameters.AddWithValue("Mail_sotr", txtMail.Text.Trim()); sqlCmd.Parameters.AddWithValue("Staj_sotr", txtStaj.Text.Trim()); sqlCmd.Parameters.AddWithValue("Login_sotr", txtLogin.Text.Trim()); string CPass = Bcrypt.HashPassword(txtPass.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/"); sqlCmd.Parameters.AddWithValue("Password_sotr", CPass); sqlCmd.ExecuteNonQuery(); sqlcon.Close(); MaterialMessageBox.Show("Регистрация прошла успешно", "Поздравляем", MessageBoxButtons.OK); Clear(); Auth auth = new Auth(); this.Hide(); auth.Show(); } } } catch (Exception ex) { MaterialMessageBox.Show(ex.Message, "Что-то пошло не так", MessageBoxButtons.OK); } }
public AccountResponse Create(CreateRequest model) { if (_context.Accounts.Any(x => x.Email == model.Email)) { throw new AppException($"Email '{model.Email}' is already registered"); } var account = _mapper.Map <Account>(model); account.Created = DateTime.UtcNow; account.Verified = DateTime.UtcNow; account.PasswordHash = BC.HashPassword(model.Password); _context.Accounts.Add(account); _context.SaveChanges(); return(_mapper.Map <AccountResponse>(account)); }
public void ResetPassword(ResetPasswordRequest model) { var account = _context.Accounts.SingleOrDefault(x => x.ResetToken == model.Token && x.ResetTokenExpires > DateTime.UtcNow); if (account == null) { throw new AppException("Invalid token"); } account.PasswordHash = BC.HashPassword(model.Password); account.PasswordReset = DateTime.UtcNow; account.ResetToken = null; account.ResetTokenExpires = null; _context.Accounts.Update(account); _context.SaveChanges(); }
private void btnLogin_Click(object sender, EventArgs e) { SqlConnection sqlcon = new SqlConnection(@"Data Source=MAHNO;Initial Catalog=PlanBadmin;" + "Integrated Security=true;"); string CPass = Bcrypt.HashPassword(txtPassword.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/"); string query = "Select * from Admin Where Login ='******' and Password = '******'"; SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon); DataTable dtbl = new DataTable(); sda.Fill(dtbl); if (dtbl.Rows.Count == 1) { Main main = new Main(); this.Hide(); main.Show(); } else { MessageBox.Show("Перепроверьте введеный вами логин и пароль"); } }
public AccountResponse Update(int id, UpdateRequest model) { var account = getAccount(id); if (account.Email != model.Email && _context.Accounts.Any(x => x.Email == model.Email)) { throw new AppException($"Email '{model.Email}' is already taken"); } if (!string.IsNullOrEmpty(model.Password)) { account.PasswordHash = BC.HashPassword(model.Password); } _mapper.Map(model, account); account.Updated = DateTime.UtcNow; _context.Accounts.Update(account); _context.SaveChanges(); return(_mapper.Map <AccountResponse>(account)); }
public async Task <Response <string> > ResetPasswordAsync(ResetPasswordRequest request) { var user = await _userRepository.FindAsync(x => x.ResetToken == request.Token && x.ResetTokenExpires > DateTime.UtcNow); if (user == null) { throw new ApiException("Invalid token"); } // update password and remove reset token user.Password = BC.HashPassword(request.Password); user.PasswordReset = DateTime.UtcNow; user.ResetToken = null; user.ResetTokenExpires = null; await _userRepository.UpdateAsync(user); return(new Response <string>(user.Email, "Password Resetted.")); }
public void Register(RegisterRequest model, string origin) { if (_context.Accounts.Any(x => x.Email == model.Email)) { sendAlreadyRegisteredEmail(model.Email, origin); return; } var account = _mapper.Map <Account>(model); var isFirstAccount = _context.Accounts.Count() == 0; account.Created = DateTime.UtcNow; account.VerificationToken = randomTokenString(); account.PasswordHash = BC.HashPassword(model.Password); _context.Accounts.Add(account); _context.SaveChanges(); sendVerificationEmail(account, origin); }
//Обработка кнопки "Войти" private void BtnLogin_Click_1(object sender, EventArgs e) { try { LogUser = txtLogin.Text.Trim(); sqlcon.Open(); string CPass = Bcrypt.HashPassword(txtPassword.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/"); string query = "SELECT * FROM Sotr WHERE Login_sotr = '" + txtLogin.Text.Trim() + "' and Password_sotr = '" + CPass.Remove(50, 10) + "'"; SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon); DbConnector dbConnector = new DbConnector(); SqlCommand sqlCommand = new SqlCommand("SELECT Id_sotr FROM dbo.Sotr where Login_sotr = 'zzzador4'", sqlcon); DataTable dtbl = new DataTable(); sda.Fill(dtbl); if (dtbl.Rows.Count == 1) { Program.IsAdmin = txtLogin.Text.Trim(); Main main = new Main(); Program.UserId = (int)sqlCommand.ExecuteScalar(); this.Hide(); main.Show(); } else { MaterialMessageBox.Show("Перепроверьте введенный вами логин и пароль", "Упс... Что-то пошло не так", MessageBoxButtons.OK); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { sqlcon.Close(); } }