public void InsertUserTest() { User user = new User { FirstName = "TestUser", LastName = "User", Email = "*****@*****.**", UserName = "******", LastLoginTime = DateTime.UtcNow, RegistrationDate = DateTime.UtcNow, EmailConfirmed = true, PasswordHash = (new PasswordHasher()).HashPassword("test") }; var res = _userManager.CreateAsync(user).Result; if (res == IdentityResult.Success) { var roleres = _userManager.AddToRoleAsync(user.Id, "Employee").Result; } _unitOfWork.SaveChanges(); user = _userManager.FindByNameAsync("testuser").Result; Assert.IsNotNull(user); //var paiidParameter = new SqlParameter("@Paid", userweekpaiDto.Id); //var paivalueParameter = new SqlParameter("@PaiValue", userweekpaiDto.Paiment); //context.Database.ExecuteSqlCommand("exec UpdateWeekPaiment @Paid,PaiValue", // paiidParameter, paivalueParameter); }
public static AccountDto MapDto(User user) { return new AccountDto { UserId = user.Id, Email = user.Email, FullName = user.LastName + " " + user.FirstName, LastLoginTime = user.LastLoginTime.ToShortDateString(), RegistrationDate = user.RegistrationDate.ToShortDateString(), CheckDebt = user.CheckDebt, IsExisting = user.IsExisting, Balance = user.Balance }; }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // Сбои при входе не приводят к блокированию учетной записи // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на shouldLockout: true //var result = await SignInManager.ValidateUserFromAd(model.LogIn, model.Password); var result = await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: var user = UserManager.FindByName(model.LogIn); if (user != null) { var passres = await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); if (passres == SignInStatus.Success) { if (await UserManager.IsInRoleAsync(user.Id, "Employee")) { user.LastLoginTime = DateTime.UtcNow; Session["EmployeeFullname"] = user.LastName + " " + user.FirstName; user.LastLoginTime = DateTime.Now; await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); return RedirectToAction("Index", "Employee", new {Area = "EmployeeArea"}); } if (await UserManager.IsInRoleAsync(user.Id, "SuperUser")) { user.LastLoginTime = DateTime.UtcNow; Session["FullName"] = user.LastName + " " + user.FirstName; user.LastLoginTime = DateTime.Now; await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); return RedirectToAction("WeekMenu", "SU_", new {Area = "SU_Area"}); } } else { User userchangePass = UserManager.FindByName(model.LogIn); if (userchangePass != null) { userchangePass.PasswordHash = _userManager.PasswordHasher.HashPassword(model.Password); var updateres = _userManager.Update(userchangePass); if (updateres == IdentityResult.Success) { await Login(model, returnUrl); } } } } else { UserPrincipal u = new UserPrincipal(_ad) {SamAccountName = model.LogIn}; PrincipalSearcher search = new PrincipalSearcher(u); UserPrincipal usprincrezult = (UserPrincipal) search.FindOne(); search.Dispose(); if (usprincrezult != null) { user = new User { FirstName = usprincrezult.GivenName, LastName = usprincrezult.Surname, Email = usprincrezult.EmailAddress, UserName = usprincrezult.SamAccountName, LastLoginTime = DateTime.UtcNow, RegistrationDate = DateTime.UtcNow, EmailConfirmed = true, PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password), CheckDebt = true, IsExisting = true }; } var res = UserManager.CreateAsync(user, model.Password).Result; if (res == IdentityResult.Success) { if (user != null) await UserManager.AddToRoleAsync(user.Id, "Employee"); var signres = await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); user = await UserManager.FindByNameAsync(model.LogIn); if (user != null && signres == SignInStatus.Success) { user.LastLoginTime = DateTime.UtcNow; Session["EmployeeFullname"] = user.LastName + " " + user.FirstName; if (!user.Email.IsNullOrWhiteSpace()) { MessageService.SendEmailAsync(new List<User>(new[] {user}), MessageTopic.Registration); } } return RedirectToAction("Index", "Employee", new {Area = "EmployeeArea"}); } } return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: ModelState.AddModelError("", "Ваша учётная запись заблокирована."); return View(model); case SignInStatus.Failure: var specuser = UserManager.FindByName(model.LogIn); if (specuser != null) { if (await UserManager.IsInRoleAsync(specuser.Id, "SuperUser")) { specuser.LastLoginTime = DateTime.UtcNow; Session["FullName"] = specuser.LastName + " " + specuser.FirstName; specuser.LastLoginTime = DateTime.Now; await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); return RedirectToAction("WeekMenu", "SU_", new {Area = "SU_Area"}); } if (await UserManager.IsInRoleAsync(specuser.Id, "Employee")) { specuser.LastLoginTime = DateTime.UtcNow; Session["EmployeeFullname"] = specuser.LastName + " " + specuser.FirstName; specuser.LastLoginTime = DateTime.Now; await _signInManager.PasswordSignInAsync(model.LogIn, model.Password, model.RememberMe, shouldLockout: false); return RedirectToAction("Index", "Employee", new {Area = "EmployeeArea"}); } } ModelState.AddModelError("", "Неудачная попытка входа."); return View(model); default: ModelState.AddModelError("", "Неудачная попытка входа."); return View(model); } }
public void InsertUserTest() { User user = new User { FirstName = "TestUser", LastName = "User", Email = "*****@*****.**", UserName = "******", LastLoginTime = DateTime.UtcNow, RegistrationDate = DateTime.UtcNow, EmailConfirmed = true, PasswordHash = (new PasswordHasher()).HashPassword("test") }; var res = _userManager.CreateAsync(user).Result; if (res == IdentityResult.Success) { var roleres= _userManager.AddToRoleAsync(user.Id, "Employee").Result; } _unitOfWork.SaveChanges(); user = _userManager.FindByNameAsync("testuser").Result; Assert.IsNotNull(user); //var paiidParameter = new SqlParameter("@Paid", userweekpaiDto.Id); //var paivalueParameter = new SqlParameter("@PaiValue", userweekpaiDto.Paiment); //context.Database.ExecuteSqlCommand("exec UpdateWeekPaiment @Paid,PaiValue", // paiidParameter, paivalueParameter); }