public ActionResult Register(RegisterViewModel model) { if (!ModelState.IsValid) { return(RedirectToAction("Index", "Error")); } var user = _userService.CreateUser(new User { Email = model.Email, FirstName = model.FirstName, SecondName = model.SecondName, PasswordHash = PasswordHashHelper.GetHash(model.Password), UserRoles = new Collection <UserRole> { new UserRole { ObjectState = ObjectState.Added, RoleId = 2 } }, SentMessages = new Collection <Message>(), ReceivedMessages = new Collection <Message>(), ObjectState = ObjectState.Added }); AuthHelper.LogInUser(HttpContext, user.Email); return(RedirectToAction("Index", "Home")); }
public User GetUserByEmailAndPassword(string email, string password) { var passwordHash = PasswordHashHelper.GetHash(password); return(Query(x => x.Email.ToLower() == email.ToLower() && x.PasswordHash == passwordHash) .Include(user1 => user1.UserRoles) .Include(user1 => user1.UserRoles.Select(role => role.Role)) .Select().FirstOrDefault()); }
public override User GenerateEntity(int index) { return(new User { FirstName = Configurations.AdminFirstName, SecondName = Configurations.AdminSecondName, Email = Configurations.AdminEmail, PasswordHash = PasswordHashHelper.GetHash(Configurations.AdminPassword), ObjectState = ObjectState.Added }); }
private void loginBtn_Click(object sender, RoutedEventArgs e) { var adminList = _db.AppAdmins.ToList(); var hashPassword = PasswordHashHelper.GetHash(passwordBox.Password.Trim()); if (adminList.Find(x => x.login.Equals(textBox.Text.Trim()) && x.password.Equals(hashPassword)) == null) { MessageBox.Show("Bledny login i/lub haslo", "Bledne dane logowania.", MessageBoxButton.OK, MessageBoxImage.Error); textBox.Clear(); passwordBox.Clear(); return; } this.DialogResult = true; this.Close(); }
public async Task <ActionResult <Tokens> > LoginUser(LoginInput loginInput) { try { var exists = _context.Users.Any(x => x.Username == loginInput.username); if (exists) { var user = await _context.Users.Where(x => x.Username == loginInput.username).FirstOrDefaultAsync(); if (PasswordHashHelper.GetHash(loginInput.password, user.Salt) == user.Password) { var token = _context.Tokens.FirstOrDefault(x => x.UserID == user.Id); // Create a new token on every successful login if (token == null) { return(default);
public async Task <ActionResult <Users> > RegisterUser(LoginInput input) { try { if (!_context.Users.Any(x => x.Username == input.username)) { DataSyncManager dataSyncManager = new DataSyncManager(_syncDbConnectionString); byte[] salt = new byte[128 / 8]; using (var rng = RandomNumberGenerator.Create()) { rng.GetBytes(salt); } Users newUser = new Users() { Username = input.username, Password = PasswordHashHelper.GetHash(input.password, salt), Salt = salt, EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary }; _context.Users.Add(newUser); await _context.SaveChangesAsync(); Users createdUser = await _context.Users.FirstOrDefaultAsync(x => x.Username == input.username); Tokens newToken = new Tokens() { UserID = createdUser.Id, Token = TokenHelper.GenerateToken(input.username, TokenHelper.TokenType.Standard), EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary }; Accounts newAccount = new Accounts() { UserID = createdUser.Id, Balance = 1000000.99, EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary }; _context.Tokens.Add(newToken); _context.Accounts.Add(newAccount); await _context.SaveChangesAsync(); if (_dataSyncEnabled) { Users replicatedUser = new Users() { Username = newUser.Username, Password = newUser.Password, Salt = newUser.Salt, EnvironmentId = RDSEnums.EnvironmentId.ProductionSecondary }; await dataSyncManager.SyncNewUser(replicatedUser, newToken.Token); } StatusOutput output = new StatusOutput() { message = StatusMessages.UserCreatedMessage }; return(Ok(output)); } else { StatusOutput output = new StatusOutput() { message = StatusMessages.UserExistsMessage }; return(Ok(output)); } } catch (Exception e) { Log.Fatal(e, $"{nameof(RegisterUser)}"); return(StatusCode(500)); } }