//POST : /api/ApplicationUser/Login public ActionResult Login(LoginModel model) { var checkPass = PasswordHash.EncodePassword(model.Password); var user = _context.HTUsers.Where(x => x.Username == model.UserName && x.PasswordHash == checkPass); if (user.Count() > 0) { var UserId = from list in user select list; var Id = UserId.Select(x => x.Id).FirstOrDefault(); var HoTen = UserId.Select(x => x.HoTen).FirstOrDefault(); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("UserID", Id.ToString()), new Claim("Name", HoTen.ToString()) }), Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature) }; var tokenHandler = new JwtSecurityTokenHandler(); var securityToken = tokenHandler.CreateToken(tokenDescriptor); var token = tokenHandler.WriteToken(securityToken); return(Ok(new { token })); } else { return(BadRequest(new { message = "Username or password is incorrect." })); } }
//POST : /api/ApplicationUser/Register public async Task <Object> PostApplicationUser(UserModel model) { var used = _context.HTUsers.ToList().Where(x => x.Username == model.Username); if (used.Count() > 0) { return(false); } var password = PasswordHash.EncodePassword(model.Password); var applicationUser = new HTUser() { Username = model.Username, PasswordHash = password, Email = model.Email, HoTen = model.HoTen }; try { await _context.HTUsers.AddAsync(applicationUser); await _context.SaveChangesAsync(); return(used); } catch (Exception ex) { throw ex; } }
public ActionResult Create(UserModel model) { var used = _context.Htuser.ToList().Where(x => x.Username == model.Username); if (used.Count() > 0) { return(BadRequest()); } var password = PasswordHash.EncodePassword(model.Password); model.Id = Guid.NewGuid(); var applicationUser = model.CopyAs <Htuser>(); applicationUser.PasswordHash = password; try { _context.Htuser.Add(applicationUser); var role = new HtuserRole { UserId = model.Id, RoleId = _context.Htrole.Where(x => x.Code == model.Role).FirstOrDefault().Id }; _context.HtuserRole.Add(role); _context.SaveChanges(); return(Ok(applicationUser)); } catch (Exception e) { throw e; } }
public ActionResult updateUser(MyProfileModel model) { //var user = _context.Htuser.Find(model.Id); //user.HoTen = model.HoTen; //user.SoDienThoai = model.SoDienThoai; //user.TenKhongDau = model.HoTen; //user.NgaySinh = model.NgaySinh; //user.GioiThieu = model.GioiThieu; //user.Email = model.Email; //user.DiaChi = model.DiaChi; //user.Username = model.Username; if (model.Password != "") { model.Password = PasswordHash.EncodePassword(model.Password); } var role = _context.Htrole.Where(x => x.Code == model.Role).FirstOrDefault(); using (var cnn = (_context as DbContext).Database.GetDbConnection()) { var cmm = cnn.CreateCommand(); var p = new DynamicParameters(); p.Add("UserId", model.Id); p.Add("RoleId", role.Id); p.Add("HoTen", model.HoTen); p.Add("SoDienThoai", model.SoDienThoai); p.Add("Email", model.Email); p.Add("DiaChi", model.DiaChi); p.Add("Password", model.Password); cnn.Query("changeRole", p, commandType: CommandType.StoredProcedure); } //_context.Htuser.Update(user); //_context.SaveChanges(); return(NoContent()); }
public ActionResult ChangePassword(PasswordModel model) { var user = _context.Htuser.Find(model.Id); var passOld = PasswordHash.EncodePassword(model.PasswordOld); var passNew = PasswordHash.EncodePassword(model.PasswordNew); if (passOld == user.PasswordHash) { if (model.PasswordNew == model.PasswordConfirm) { user.PasswordHash = passNew; _context.Htuser.Update(user); _context.SaveChanges(); } else { return(BadRequest()); } return(NoContent()); } return(BadRequest()); }