public async Task <ResultData> CheckToken([FromUri] string token) { ResultData oResultData = new ResultData(); try { //Kiểm tra key có tồn tại và đã hết thời gian kích hoạt chưa if (!string.IsNullOrWhiteSpace(token) && MemoryCacheHelper.HasExitsKey(token)) { string userName = Convert.ToString(MemoryCacheHelper.GetValue(token)); ApplicationUser user = UserManager.FindByName <ApplicationUser, string>(userName); if (user != null) { oResultData.Success = true; } else { oResultData.Success = false; } } else { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.ErrorExpriedActiveLink; } } catch (Exception ex) { oResultData.SetError(ex); } return(oResultData); }
public async Task <ResultData> Active([FromUri] string token) { ResultData oResultData = new ResultData(); try { //Kiểm tra key có tồn tại và đã hết thời gian kích hoạt chưa if (!string.IsNullOrWhiteSpace(token) && MemoryCacheHelper.HasExitsKey(token)) { string userName = Convert.ToString(MemoryCacheHelper.GetValue(token)); ApplicationUser user = UserManager.FindByName <ApplicationUser, string>(userName); if (user != null) { string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); string passWordGenerate = MT.Library.CommonFunction.RandomPassword(); var result = await UserManager.ResetPasswordAsync(user.Id, code, passWordGenerate); if (result.Succeeded) { MemoryCacheHelper.Delete(token); string hostName = MT.Library.CommonFunction.GetDomainBEcore(); string pathEmail = MT.Library.CommonFunction.GetMapPathEmail(); var destinationPath = Path.Combine(pathEmail, "ActivePassword.html"); string strBody = MT.Library.CommonFunction.ReadData(destinationPath); strBody = strBody.Replace("#Link#", hostName); strBody = strBody.Replace("#PassWord#", passWordGenerate); //Gửi mail kích hoạt tài khoản EmailUltility.SendMail(user.Email, "", MT.Resources.GlobalResource.Title_SendLinkActive, strBody, null); oResultData.Success = true; } else { oResultData.Success = false; } } } else { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.ErrorExpriedActiveLink; } } catch (Exception ex) { oResultData.SetError(ex); } return(oResultData); }