public async Task <IActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { User user = await _context.Users.FirstOrDefaultAsync(u => u.Email == model.Email); if (user == null) { // добавляем пользователя в бд user = new User { Email = model.Email, Password = HashingPassword.GetHashPassword(model.Password) }; Role userRole = await _context.Roles.FirstOrDefaultAsync(r => r.Name == "user"); if (userRole != null) { user.Role = userRole; } _context.Users.Add(user); await _context.SaveChangesAsync(); await Authenticate(user); // аутентификация return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "Некорректные логин и(или) пароль"); } } return(View(model)); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity <Player>() .HasOne(p => p.Tournament) .WithMany(t => t.Players) .OnDelete(DeleteBehavior.SetNull); modelBuilder.Entity <Location>() .HasOne(p => p.Tournament) .WithMany(t => t.Locations) .OnDelete(DeleteBehavior.SetNull); string adminRoleName = "admin"; string userRoleName = "user"; string adminEmail = "*****@*****.**"; string adminPassword = HashingPassword.GetHashPassword("123456"); Role adminRole = new Role { Id = 1, Name = adminRoleName }; Role userRole = new Role { Id = 2, Name = userRoleName }; User adminUser = new User { Id = 1, Email = adminEmail, Password = adminPassword, RoleId = adminRole.Id }; modelBuilder.Entity <Role>().HasData(new Role[] { adminRole, userRole }); modelBuilder.Entity <User>().HasData(new User[] { adminUser }); base.OnModelCreating(modelBuilder); }
private User[] fillUsers(User admin, int userRoleId) { var users = new User[31]; users[0] = admin; Random random = new Random(); for (int i = 0; i < 30; i++) { int randomDay = random.Next(1, 28); int randomMonth = random.Next(1, 12); int randomYear = random.Next(1990, 2000); User user = new User { Id = 2 + i, Name = "MockName" + i, Surname = "MockSurname" + i, Birthday = new DateTime(randomYear, randomMonth, randomDay), Email = "MockEmail" + i + "@mail.ru", Password = HashingPassword.GetHashPassword("123456"), RoleId = userRoleId }; users[i + 1] = user; } return(users); }
public void TestGetHashPasswordWhenMixSimbolResultCorrectHash() { var password = "******"; var hash = GetHash(password); var newPassword = HashingPassword.GetHashPassword(password); Assert.AreEqual(hash, newPassword); }
public void TestGetHashPasswordWhenOnlyLettersResultCorrectHash() { var password = "******"; var hash = GetHash(password); var newPassword = HashingPassword.GetHashPassword(password); Assert.AreEqual(hash, newPassword); }
public void TestIsValidPasswordWhenPasswordNotEqulasResultFalse() { var password = "******"; var hash = HashingPassword.GetHashPassword(password); bool isEqulas = HashingPassword.IsValidPassword(hash, password); Assert.True(isEqulas); }
public void TestGetHashPasswordWhenOnlyNumberResultCorrectHash() { HashingPassword.Init(); var password = "******"; var hash = GetHash(password); var newPassword = HashingPassword.GetHashPassword(password); Assert.AreEqual(hash, newPassword); }
public async Task <ActionResult> Login(LoginModel model) { await HttpContext.SignOutAsync(); var kek1 = User; if (ModelState.IsValid) { User user = null; var hashPassword = HashingPassword.GetHashPassword(model.password); user = _users.GetAllUsers.FirstOrDefault(item => item.email == model.email && item.password == hashPassword); if (user != null) { await HttpContext.SignOutAsync(); string userRoleString; if (user.role == 0) { userRoleString = "User"; } else { userRoleString = "Admin"; } var listClaims = new List <Claim>() { new Claim(ClaimTypes.Name, user.name), new Claim(ClaimTypes.Email, user.email), new Claim(ClaimTypes.Role, userRoleString), }; var claimIndentity = new ClaimsIdentity(listClaims, "Claims"); var userPrincipal = new ClaimsPrincipal(new[] { claimIndentity }); await HttpContext.SignInAsync(userPrincipal); _logger.LogInformation($"LOG Succecc auth for {user.name}"); ViewBag.message = "Успешная авторизация."; return(Redirect("/Home/Index")); } else { ModelState.AddModelError("error", "Неверный логин или пароль!"); } } return(View(model)); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity <User>() .HasMany(c => c.Chats) .WithOne(e => e.User); modelBuilder.Entity <Chat>() .HasMany(c => c.Messages) .WithOne(e => e.Chat); modelBuilder.Entity <Chat>() .HasMany(c => c.ChatMembers) .WithOne(e => e.Chat); modelBuilder.Entity <User>() .HasMany(c => c.ChatMembers) .WithOne(e => e.User); string adminRoleName = "admin"; string userRoleName = "user"; string name = "Mike"; string surname = "Chernikov"; DateTime birthDay = new DateTime(1997, 09, 18); string adminEmail = "*****@*****.**"; string adminPassword = HashingPassword.GetHashPassword("123456"); Role adminRole = new Role { Id = 1, Name = adminRoleName }; Role userRole = new Role { Id = 2, Name = userRoleName }; User adminUser = new User { Id = 1, Name = name, Surname = surname, Birthday = birthDay, Email = adminEmail, Password = adminPassword, RoleId = adminRole.Id }; modelBuilder.Entity <Role>().HasData(new Role[] { adminRole, userRole }); var users = fillUsers(adminUser, userRole.Id); modelBuilder.Entity <User>().HasData(users); base.OnModelCreating(modelBuilder); }
public void CreateUser(RegisterModel model) { var hashPassowrd = HashingPassword.GetHashPassword(model.password); _appDBContent.User.Add(new User { email = model.email, password = hashPassowrd, role = 0, name = model.name }); _appDBContent.SaveChanges(); }
public async Task <IActionResult> Create([Bind("Id,Email,Password,RoleId")] User user) { initDataView(); if (ModelState.IsValid) { user.Password = HashingPassword.GetHashPassword(user.Password); _context.Add(user); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["RoleId"] = new SelectList(_context.Roles, "Id", "Id", user.RoleId); return(View(user)); }
public async Task <IActionResult> Login(LoginModel model) { if (ModelState.IsValid) { User user = await _context.Users .Include(u => u.Role) .FirstOrDefaultAsync(u => u.Email == model.Email && u.Password == HashingPassword.GetHashPassword(model.Password)); if (user != null) { await Authenticate(user); return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "Некорректные логин и(или) пароль"); } return(View(model)); }
public void TestMethod1() { HashingPassword.Init(); HashingPassword.GetHashPassword("21673781264"); }