public async Task <User> ChangePassword(UserChangePassword user) { try { var objUser = new User(); objUser = await GetUserById(user.id); if (objUser != null) { //check pass if (SecurityBCryptMethod.VerifyPassword(user.Password, objUser.Password)) { // update pass objUser.Password = SecurityBCryptMethod.CreatePasswordHash(user.NewPassword); await Update(objUser); } else { return(null); } } return(objUser); } catch (Exception) { throw; } }
public async Task CreateUser(DataTransformationUser dataTransformationUser) { User user = new User(); user.UserName = dataTransformationUser.UserName; user.Password = SecurityBCryptMethod.CreatePasswordHash(dataTransformationUser.Password); user.EmailAddress = dataTransformationUser.EmailAddress; user.ExpiresIn = dataTransformationUser.ExpiresIn; user.IPAddress = dataTransformationUser.IPAddress; user.Gender = dataTransformationUser.Gender; user.InExuer = dataTransformationUser.InExuer; user.LimitedTotal = dataTransformationUser.LimitedTotal; user.CreatedDate = DateTime.Now; user.CreatedBy = ""; user.Deleted = false; user.RoleDetails = new List <UserDetail>(); foreach (DetailDataTransformationUserRole detailDataTransformationUserRole in dataTransformationUser.RoleDetails) { UserDetail userDetail = new UserDetail(); userDetail.Id = new ObjectId(detailDataTransformationUserRole.id); userDetail.Name = detailDataTransformationUserRole.Name; user.RoleDetails.Add(userDetail); } await _context.Users.InsertOneAsync(user); }
public async Task <IActionResult> Post([FromBody] User value) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { value.UserName = value.UserName; value.Password = SecurityBCryptMethod.CreatePasswordHash(value.Password); value.ExpiresIn = value.ExpiresIn; value.Gender = value.Gender; value.EmailAddress = value.EmailAddress; IPHostEntry heserver = Dns.GetHostEntry(Dns.GetHostName()); var ipAddress = heserver.AddressList.ToList().Where(p => p.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).FirstOrDefault().ToString(); // get IP client value.IPAddress = ipAddress;// _accessor.HttpContext.Connection.RemoteIpAddress.ToString(); value.LimitedTotal = value.LimitedTotal; value.InExuer = value.InExuer; value.Deleted = false; value.CreatedDate = DateTime.Now; await _userRepository.Create(value); return(new OkObjectResult(value)); } catch (Exception) { return(BadRequest()); } }
/// <summary> /// Validation UserName & Password /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <returns></returns> public string Login(LoginDto loginDto, string SigningSecret, string ExpiryDuration) { var tokenString = ""; var user = _context.Users.Find(u => u.UserName == loginDto.UserName).SingleOrDefault(); if (user == null) { return(null); } else { if (SecurityBCryptMethod.VerifyPassword(loginDto.Password, user.Password)) { // generate token tokenString = SecurityTokenMethod.JWTAuthenticationToken(SigningSecret, ExpiryDuration, user); //update token in user user.AccessToken = tokenString; user.UpdatedDate = DateTime.Now; _context.Users.ReplaceOneAsync(filter: u => u.Id == user.Id, replacement: user); //insert token var token = new Token(); token.UserId = user.Id; token.TokenKey = tokenString; token.CreatedDate = DateTime.Now; token.CreatedBy = user.UserName;// user login _context.Tokens.InsertOneAsync(token); } else { return(null); } } return(tokenString); }
/// <summary> /// IsAuthenticated /// </summary> /// <param name="LoginDto"></param> /// <returns></returns> public User IsAuthenticated(LoginDto loginDto, string SigningSecret, string ExpiryDuration) { var user = new User(); try { // check user user = _context.Users.Find(u => u.UserName == loginDto.UserName).SingleOrDefault(); //check pass if (user != null) { if (SecurityBCryptMethod.VerifyPassword(loginDto.Password, user.Password)) { if (user.AccessToken != null) { // update token user when Expires } else { // generate token var tokenString = SecurityTokenMethod.JWTAuthenticationToken(SigningSecret, ExpiryDuration, user); var userUpdateToken = new User(); user.Id = user.Id; user.AccessToken = tokenString; user.UpdatedDate = DateTime.Now; ReplaceOneResult updateResult = _context.Users.ReplaceOne(filter: u => u.Id == user.Id, replacement: user); if (updateResult.IsAcknowledged && updateResult.ModifiedCount > 0) { //insert token var token = new Token(); token.UserId = user.Id; token.TokenKey = tokenString; token.CreatedDate = DateTime.Now; token.CreatedBy = user.UserName;// user login _context.Tokens.InsertOneAsync(token); } } } else { user = null; } } return(user); } catch (Exception) { } return(user); }