public IActionResult Test(ForgotVM forgotVM) { var txt = "Test"; byte[] encodedBytes = Encoding.Unicode.GetBytes(txt); string encodedTxt = Convert.ToBase64String(encodedBytes); byte[] decodedBytes = Convert.FromBase64String(Convert.ToBase64String(Encoding.Unicode.GetBytes(txt))); string decodedTxt = Encoding.UTF8.GetString(decodedBytes); string decodedTxt2 = Encoding.Unicode.GetString(decodedBytes); var obj = new { Id = "202020", Name = "Joni bro", NIK = 212321, }; var encode = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(forgotVM))); var getdecode = WebEncoders.Base64UrlDecode(encode); var getString = Encoding.UTF8.GetString(getdecode); var decode = JsonConvert.DeserializeObject(getString); return(Ok(new { encByte = encodedBytes, encTxt = encodedTxt, decByte = decodedBytes, dectxt = decodedTxt, dectxt2 = decodedTxt2, tesEnc = encode, tesDec = decode, })); }
public IActionResult ChangePassword(ForgotVM forgotVM) { var json = JsonConvert.SerializeObject(forgotVM); var buffer = System.Text.Encoding.UTF8.GetBytes(json); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage result = null; if (forgotVM.Token == null) { result = client.PostAsync("forgot/", byteContent).Result; if (result.IsSuccessStatusCode) { SendLogs(forgotVM.Email + " Forgot Password", forgotVM.Email); return(Json(result)); } var getdata = result.Content.ReadAsStringAsync().Result; return(Json(new { result, msg = getdata })); } else if (forgotVM.Token != null) { result = client.PostAsync("reset?token=" + forgotVM.Token, byteContent).Result; if (result.IsSuccessStatusCode) { SendLogs(HttpContext.Session.GetString("email") + " Forgot Password", HttpContext.Session.GetString("email")); return(Json(result)); } var getdata = result.Content.ReadAsStringAsync().Result; return(Json(new { result, msg = getdata })); } return(Redirect("/login")); }
public async Task <IActionResult> Reset(string token, ForgotVM forgotVM) { var getToken = _context.Users.Where(x => x.Token == token); var tokenCount = getToken.Count(); if (tokenCount > 0) { var getdecode = WebEncoders.Base64UrlDecode(token); var getString = Encoding.UTF8.GetString(getdecode); var getDObj = JsonConvert.DeserializeObject <ForgotVM>(getString); var decode = JsonConvert.DeserializeObject <ForgotVM>(Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(token))); var getUser = _context.Users.Include("Employee").Where(x => x.Email == decode.Email); var cekCount = getUser.Count(); if (cekCount == 1) { if (ModelState.IsValid) { var getUserId = await getUser.SingleOrDefaultAsync(); var user = new UserVM { Email = decode.Email, Password = Bcrypt.HashPassword(forgotVM.Password), Token = null, }; var create = _repo.Update(user, getUserId.Id); if (create > 0) { Sendlog(decode.Email + " Reset Password", forgotVM.Email); return(Ok("Reset Password Successfully")); } return(BadRequest("Reset Password Not Successfully")); } return(BadRequest("Something wrong")); } return(BadRequest("Email Doesn't Exists ")); } return(BadRequest("Token Doesn't Exists ")); }
public async Task <IActionResult> Forgot(ForgotVM forgotVM) { var getUser = _context.Users.Include("Employee").Where(x => x.Email == forgotVM.Email); var cekCount = getUser.Count(); if (cekCount != 0) { if (ModelState.IsValid) { var getUserId = await getUser.SingleOrDefaultAsync(); var code = randDig.GenerateRandom(); //var user = await _userManager.FindByEmailAsync(forgotVM.Email); //var token = await _userManager.GeneratePasswordResetTokenAsync(user); //var callback = Url.Action(nameof(ResetPassword), nameof(AccountController), new { token, email = user.Email }, Request.Scheme); var encode = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(forgotVM))); //var link = Url.Action("ResetPassword", "Auth", new { email = forgotVM.Email, encode }, Request.Scheme); //var link = "<a href='" + Url.Action("ResetPassword", "Auth", new { email = forgotVM.Email, encode }, "http") + "'>Reset Password</a>"; var link = baseURL.UsrManage + "reset?token=" + encode; var fill = "Hi " + getUserId.Employee.Name + "\n\n" + "Click this link for Reset Password : \n" + "<a href=" + link + ">Reset Password</a>" + "\n\nThank You"; MailMessage mm = new MailMessage("*****@*****.**", forgotVM.Email, "Forgot Password ", fill); mm.BodyEncoding = UTF8Encoding.UTF8; mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; string str1 = "gmail.com"; string str2 = attrEmail.mail; if (str2.Contains(str1)) { try { client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; client.Timeout = 10000; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(attrEmail.mail, attrEmail.pass); client.Send(mm); } catch (Exception ex) { return(BadRequest("SMTP Gmail Error " + ex)); } } else if (!str2.Contains(str1)) { try { client.Port = 25; client.Credentials = new NetworkCredential(attrEmail.mail, attrEmail.pass); client.EnableSsl = false; client.Send(mm); } catch (Exception ex) { return(BadRequest("SMTP Email Error " + ex)); } } var user = new UserVM { Email = forgotVM.Email, Password = null, Token = encode, }; var create = _repo.Update(user, getUserId.Id); if (create > 0) { Sendlog(forgotVM.Email + " send link to email Successfully", forgotVM.Email); return(Ok("Please check your email")); } } return(BadRequest("Not Successfully")); } return(BadRequest("Email Doesn't Exists ")); }