Пример #1
0
        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);
        }
Пример #2
0
        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);
        }