public void IdentitySignin(User user, bool isPersistent = false) { if (user == null) { throw new ArgumentNullException("user"); } var claims = new List<Claim>(); claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())); claims.Add(new Claim(ClaimTypes.Role, user.IsAdmin.ToString())); claims.Add(new Claim(ClaimTypes.Email, user.Email)); var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); AuthenticationManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = isPersistent, ExpiresUtc = DateTime.UtcNow.AddDays(7) }, identity); }
public void UserRepository_Update_ShouldReturnUpdatedEntity() { var userToChange = new User() { Id = 1, Email = "mail1", Lists = new List<Order>(), Name = "name1", Password = "******", PhotoPath = "photo1", }; var dbData = new List<User>() { userToChange, new User() { Id = 1, Email = "mail1", Lists = new List<Order>(), Name = "name1", Password = "******", PhotoPath = "photo1", }, new User() { Id = 3, Email = "mail3", Lists = new List<Order>(), Name = "name3", Password = "******", PhotoPath = "photo3", } }.AsQueryable(); var newUser = new User() { Id = 1, Email = "mail2", Lists = new List<Order>(), Name = "name2", Password = "******", PhotoPath = "photo2", }; var dbSetMock = new Mock<DbSet<User>>(); dbSetMock.As<IQueryable<User>>().Setup(x => x.Provider).Returns(dbData.Provider); dbSetMock.As<IQueryable<User>>().Setup(x => x.Expression).Returns(dbData.Expression); dbSetMock.As<IQueryable<User>>().Setup(x => x.ElementType).Returns(dbData.ElementType); dbSetMock.As<IQueryable<User>>().Setup(x => x.GetEnumerator()).Returns(dbData.GetEnumerator()); var dbContextMock = new Mock<ApplicationDbContext>(); dbContextMock.Setup(x => x.Set<User>()).Returns(dbSetMock.Object); var repo = new UserRepository(dbContextMock.Object); var result = repo.Update(newUser); Assert.AreEqual(newUser.Name, result.Name); Assert.AreEqual(newUser.PhotoPath, result.PhotoPath); }
public ActionResult Register(UserRegisterModel model) { var anyUser = _userService.GetAll().Any(u => u.Email == model.Email); if (anyUser) { ModelState.AddModelError("", "User with that email already exists!"); return View(model); } if (ModelState.IsValid) { var user = new User() { Password = model.Password, Email = model.Email }; user = _userService.Create(user); if (user != null) { _signService.IdentitySignin(user); return RedirectToAction("Index", "Home"); } else ModelState.AddModelError("", "Registration error!"); } return View("Register"); }