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); }
public ResultData SendLinkActive([FromUri] string userName, [FromUri] string capcha, [FromUri] string emailConfirm) { ResultData oResultData = new ResultData(); try { if (!string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(capcha)) { //Kiểm tra user có tồn tại không ApplicationUser user = UserManager.FindByName <ApplicationUser, string>(userName); if (user != null) { //Kiểm tra capcha có hợp lệ không object objCapcha = MemoryCacheHelper.GetValue(Commonkey.Capcha); if (objCapcha == null && !string.IsNullOrWhiteSpace(capcha)) { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.WarnCodeExpried; } if (!objCapcha.ToString().Equals(capcha, StringComparison.OrdinalIgnoreCase)) { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.WarnCodeInValid; } else { MemoryCacheHelper.Delete(Commonkey.Capcha); } if (user.Email == emailConfirm) { Guid token = Guid.NewGuid(); MemoryCacheHelper.Add(token.ToString(), userName, DateTimeOffset.Now.AddDays(1)); string hostName = MT.Library.CommonFunction.GetDomainBEcore(); string pathEmail = MT.Library.CommonFunction.GetMapPathEmail(); //var destinationPath = Path.Combine(pathEmail, "ConfirmPassword.html"); var destinationPath = Path.Combine(pathEmail, "SetNewPassword.html"); string strBody = MT.Library.CommonFunction.ReadData(destinationPath); strBody = strBody.Replace("#Link#", hostName); strBody = strBody.Replace("#Token#", token.ToString()); //Gửi mail kích hoạt tài khoản EmailUltility.SendMail(user.Email, "", MT.Resources.GlobalResource.Title_ActiveLink, strBody, null); oResultData.Success = true; oResultData.Data = user.Email; } else { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.InvalidEmailConfirm; } } else { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.UserNameInValid; } } else { oResultData.Success = false; oResultData.ErrorMessage = MT.Resources.GlobalResource.WarnUserNameOrCodeBlank; } } catch (Exception ex) { oResultData.SetError(ex); } return(oResultData); }