private string JwtTokenGenerator(UserViewmodel model) { // Site key should go in web.config file, but I put it here to be expedient. var secret = "ergwe98srg6KJG875jgjyrtyfderu65764uyJMHKOUKF"; var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret)); var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha512Signature); var json = JsonConvert.SerializeObject(model); var jsonBytes = Encoding.ASCII.GetBytes(json); var user64 = Convert.ToBase64String(jsonBytes); var claims = new List <Claim> { new Claim(ClaimTypes.UserData, user64) }; var descriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(7), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(descriptor); return(tokenHandler.WriteToken(token)); }
public ActionResult getuserdetails() { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value); var username = ticket.UserData; UserViewmodel new_user = new UserViewmodel { email = username, LastName = (from users in _db.users where users.email == username select users.LASTName).First(), FirstName = (from users in _db.users where users.email == username select users.FIRSTName).First(), Role = (from users in _db.users where users.email == username select users.role).First(), }; string json = JsonConvert.SerializeObject(new_user); return(Json(json)); }
private string JwtTokenGenerator(UserViewmodel model) { var secret = _config.GetSection("AppSettings:Key").Value; var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret)); var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha512Signature); // 1. Convert model to json. var json = JsonSerializer.Serialize(model); // 2. Get byte array from json. var jsonBytes = Encoding.ASCII.GetBytes(json); // 3. Convert json byte array to base64 text. var user64 = Convert.ToBase64String(jsonBytes); // 4. Add base64 text to claims. var claims = new List <Claim> { new Claim(ClaimTypes.UserData, user64) }; var descriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(7), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(descriptor); return(tokenHandler.WriteToken(token)); }
public async Task <IActionResult> UserList(string roleName, string txtTitle, int itemPage = 1) { roleName = roleName ?? "All"; var usersOfRole = roleName != "All" ? await userManager.GetUsersInRoleAsync(roleName) : await userManager.Users.ToListAsync(); txtTitle = txtTitle == null ? "" : txtTitle.ToUpper(); UserViewmodel userList = new UserViewmodel { AppUsers = usersOfRole .Where(r => r.UserName.ToUpper().Contains(txtTitle)) .OrderBy(u => u.UserName) .Skip((itemPage - 1) * PageSize) .Take(PageSize), Roles = roleManager.Roles .OrderByDescending(r => r.Name) .ToList(), PagingInfo = new PagingInfo { CurrentPage = itemPage, ItemsPerPage = PageSize, TotalItems = userManager.Users.Count() } }; foreach (var appUser in userList.AppUsers) { appUser.BusinessCount = repository.Businesses.Count(c => c.AppUser_Id == appUser.Id); } return(View(userList)); }
public IActionResult GetUserHistoryById(UserViewmodel userViewmodel) { var reports = _reportService.GetReportsByUserId(userViewmodel.Id).ToArray(); var userHistoryViewmodel = Mapper.ModelToViewModelMapping.UserHistoryViewmodel(userViewmodel, reports); return(Ok(userHistoryViewmodel)); }
public bool CheckPassword(User user, UserViewmodel userViewmodel, HashPassword _hashPassword) { if (_hashPassword.Verify(userViewmodel.Password, user.Password)) { return(true); } return(false); }
public void Initialize() { _user = DataSupplier.DataSupplier.CreateUserViewmodels("Password").First(); _loginFacadeMock = new Mock <ILoginFacade>(); _loginFacadeMock.Setup(x => x.Validate(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(_user)); _sut = new LoginController(_loginFacadeMock.Object); }
public void Initialize() { _user = DataSupplier.DataSupplier.CreateUserViewmodels("Password").First(); _registerFacadeMock = new Mock <IRegisterFacade>(); _registerFacadeMock.Setup(x => x.Register(It.IsAny <UserViewmodel>(), It.IsAny <string>())).Returns(Task.FromResult(IdentityResult.Success)); _sut = new RegisterController(_registerFacadeMock.Object); }
public UserHistoryViewmodel UserHistoryViewmodel(UserViewmodel userViewmodel, Report[] reports) { return(new UserHistoryViewmodel { Id = userViewmodel.Id, Firstname = userViewmodel.Firstname, Lastname = userViewmodel.Lastname, Reports = reports, }); }
public User UserViewModelToUser(UserViewmodel userViewmodel) { return(new User { Login = userViewmodel.Login, FirstName = userViewmodel.Firstname, LastName = userViewmodel.Lastname, Department = userViewmodel.Department, }); }
public static byte[] ConvertUserToByteArray(UserViewmodel obj) { var bf = new BinaryFormatter(); using (var ms = new MemoryStream()) { bf.Serialize(ms, obj); return(ms.ToArray()); } }
public ActionResult DeleteConfirmed(int id) { UserViewmodel model = new UserViewmodel(); model.UserID = id; _userService.UserDelete(model); //User user = db.Users.Find(id); //db.Users.Remove(user); //db.SaveChanges(); return(RedirectToAction("Index")); }
public bool CheckMailAddress(User[] users, UserViewmodel userViewmodel) { for (int i = 0; i < users.Length; i++) { if (users[i].Login.ToLower() == userViewmodel.Login.ToLower()) { return(true); } } return(false); }
public void UserCreate(UserViewmodel _user) { if (_user != null) { User usr = new User(); usr.Email = _user.Email; usr.Password = _user.Password; usr.Username = _user.Username; usr.UserRole = _user.UserRole; usr.UserVariance = _user.UserVariance; _userRepository.Insert(usr); } }
public JsonResult Login(UserViewmodel model) { bool Succeded = false; User user = accountService.GetUser(model.UserName, model.Password); if (user != null) { accountService.Login(user.ID, user.UserName); Succeded = true; } return(Json(new { Succeded }, JsonRequestBehavior.AllowGet)); }
public UserViewmodel UserViewModelData() { var userViewmodel = new UserViewmodel() { Id = 1, Login = "******", Password = "******", Firstname = "Samuel", Lastname = "Davidsson" }; return(userViewmodel); }
public AuthenticationProperties SetAuthenticationProperties(string userRole, UserViewmodel user) { return(new AuthenticationProperties(new Dictionary <string, string> { { "userRole", userRole }, { "userId", user.Id }, { "userName", user.UserName } })); }
public void UserDelete(UserViewmodel _user) { User user = _userRepository.FirstOrDefault(x => x.UserID == _user.UserID); if (user != null) { User usr = new User(); usr.UserID = _user.UserID; usr.Email = _user.Email; usr.Password = _user.Password; usr.Username = _user.Username; usr.UserRole = _user.UserRole; usr.UserVariance = _user.UserVariance; _userRepository.Delete(x => x.UserID == _user.UserID); } }
public async Task <IdentityResult> Register(UserViewmodel userViewmodel, string password) { try { var user = MapUserFromUserViewModel(userViewmodel); return(await _registerService.Register(user, password)); } catch (ServerValidationException) { throw; } catch (Exception) { throw; } }
public async Task <IHttpActionResult> Post(UserViewmodel user) { try { var validatedUser = await _loginFacade.Validate(user.UserName, user.Password); return(Ok(validatedUser)); } catch (ServerValidationException serverExc) { return(BadRequest(serverExc.Message)); } catch (Exception ex) { return(BadRequest($"Something unexpected happened: {ex.Message}. Try to reload this page.")); } }
public List <UserViewmodel> GetAllUser() { var users = _userRepository.GetAll(); List <UserViewmodel> userList = new List <UserViewmodel>(); foreach (var item in users) { UserViewmodel user = new UserViewmodel(); user.UserID = item.UserID; user.Email = item.Email; user.Password = item.Password; user.Username = item.Username; user.UserVariance = item.UserVariance; user.UserRole = item.UserRole; userList.Add(user); } return(userList); }
public IActionResult RegisterUser(UserViewmodel userViewModel) { var users = _userService.GetAll().ToArray(); if (userViewModel.Password != userViewModel.ConfirmPassword) { return(BadRequest("Lösenorden matchar inte.")); } bool emailExist = _authControllerServices.CheckMailAddress(users, userViewModel); if (emailExist == false) { var user = Mapper.ViewModelToModelMapping.UserViewModelToUser(userViewModel); user.Password = _hashPassword.Hash(userViewModel.Password); _userService.Add(user); return(Ok("Användaren har sparats, du skickas till login sidan inom 5 sekunder!")); } return(BadRequest("Mailadressen är redan registerad.")); }
public IActionResult Login(UserViewmodel userViewModel) { var users = _userService.GetAll().ToArray(); bool emailExist = _authControllerServices.CheckMailAddress(users, userViewModel); if (emailExist == true) { var user = _userService.GetUserByLogin(userViewModel.Login); bool isValid = _authControllerServices.CheckPassword(user, userViewModel, _hashPassword); if (isValid == true) { var AuthUser = Mapper.ModelToViewModelMapping.UserViewmodel(user); var tokenString = _authControllerServices.CreateTokenToString(_configuration); AuthUser.Token = tokenString; return(Ok(AuthUser)); } } return(BadRequest("Användarnamnet eller lösenordet är felaktigt.")); }
public IActionResult Register(UserViewmodel model) { if (ModelState.IsValid) { PasswordHasher <User> Hasher = new PasswordHasher <User>(); User NewUser = new User { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, Password = model.Password }; NewUser.Password = Hasher.HashPassword(NewUser, NewUser.Password); _context.Users.Add(NewUser); _context.SaveChanges(); int UserId = _context.Users.Last().Id; HttpContext.Session.SetInt32("Id", UserId); return(RedirectToAction("Dashboard", "Wedding")); } return(View("Index")); }
public async Task <ActionResult> Register(UserViewmodel model) { // Generate a token that holds our input (UserViewmodle in this case). var token = JwtTokenGenerator(model); // Generate the URL in the email link to the confirmation page. var uriBuilder = new UriBuilder("http://localhost:44385/Auth/Confirm"); var query = HttpUtility.ParseQueryString(uriBuilder.Query); query["token"] = token; uriBuilder.Query = query.ToString(); var urlString = uriBuilder.ToString(); var emailBody = $"<p>Click on the link below to confirm your account.</p><p>{urlString}</p>"; var emailService = new EmailService(); await emailService.SendAsync(model.Email, emailBody, "Confirm your account", new EmailOptionsDTO()); TempData["RegisterResult"] = true; return(View()); }
public void Initialize() { //Test data _password = "******"; var users = DataSupplier.DataSupplier.CreateUserViewmodels(_password); _user = users.First(); //Mock initialise var registerServiceMock = new Mock <IRegisterService>(); //Configure automapper var mapperConfig = new AutoMapperConfiguration(); var mapper = mapperConfig.Map(); //Mock setup registerServiceMock.Setup(x => x.Register(It.IsAny <User>(), It.IsAny <string>())).Returns(Task.FromResult(IdentityResult.Success)); //System under test initialise _sut = new RegisterFacade(registerServiceMock.Object, mapper); }
public ActionResult Login(UserViewmodel model) { User user = accountService.GetUser(model.UserName, model.Password); if (user != null) { Role role = userRepository.GetRoleById(user.RoleId); accountService.Login(user.UserId, user.Name, role.Name); if (role.Name == "Admin") { //return RedirectToRoute("Admin"); Response.Redirect("~/admin/companies.aspx"); } else { return(RedirectToAction("Index", "Default")); } } return(new HttpUnauthorizedResult()); }
public void Initialize() { //Test data _password = "******"; var userViewmodels = DataSupplier.DataSupplier.CreateUserViewmodels(_password); _userViewModel = userViewmodels.First(); _user = DataSupplier.DataSupplier.CreateUsers(_password).First(); //Mock initialise var loginServiceMock = new Mock <ILoginService>(); //Configure automapper var mapperConfig = new AutoMapperConfiguration(); var mapper = mapperConfig.Map(); //Mock setup loginServiceMock.Setup(x => x.Validate(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(_user)); //System under test initialise _sut = new LoginFacade(loginServiceMock.Object, mapper); }
public async Task <IHttpActionResult> Post(UserViewmodel user) { try { var identityResult = await _registerFacade.Register(user, user.Password); if (identityResult.Succeeded) { return(Ok("Registration successful!")); } else { return(BadRequest(ErrorMessageBuilder.BuildErrorMessage("Registration failed: ", identityResult.Errors))); } } catch (ServerValidationException serverExc) { return(BadRequest(serverExc.Message)); } catch (Exception ex) { return(BadRequest($"Something unexpected happened: {ex.Message}. Try to reload this page.")); } }
// GET: UserManagement public async Task <ActionResult> Index() { var userList = _context .Users .ToList(); ViewData["CategoryId"] = new SelectList(_context.Category, "Id", "Name", -1); List <UserViewmodel> userModelList = new List <UserViewmodel>(); foreach (var item in userList) { bool isadmin = await _userManager.IsInRoleAsync(item, "admin"); var user = new UserViewmodel { Id = item.Id, UserName = item.UserName, FullName = item.Ad + " " + item.Soyad, IsAdmin = isadmin }; userModelList.Add(user); } return(View(userModelList)); }