示例#1
0
        public ActionResult ResetPasswordConfirmed(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ResetPassword res = _resetPasswordManager.Find(x => x.ResetGuid == id);

            if (res == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Session.Remove("ResId");
            Session["ResId"] = res.Id;

            return(View());
        }
示例#2
0
        public BusinessLayerResult <ApplicationUser> ForgatPassword(string email)
        {
            email = CultureInfo.CurrentCulture.TextInfo.ToLower(email).Trim().Replace(" ", string.Empty);
            BusinessLayerResult <ApplicationUser> res = new BusinessLayerResult <ApplicationUser>();

            res.Result = _userManager.FindByEmail(email);

            if (res.Result == null)
            {
                res.AddError(ErrorMessageCode.UserCouldNotFind, "Kayıtlı e-posta bulunamadı.");
                return(res);
            }

            ResetPassword db_resetPassword = _resetPasswordManager.Find(x => x.ApplicationUserId == res.Result.Id && x.IsUsed == false);

            if (db_resetPassword != null)
            {
                res.AddError(ErrorMessageCode.UserCouldNotFind, "Lütfen eposta adresinizi kontrol ediniz. Böyle bir istekte daha önceden bulunulmuş.");
                return(res);
            }

            ResetPassword rp = new ResetPassword()
            {
                IsUsed            = false,
                ApplicationUserId = res.Result.Id,
                ResetGuid         = Guid.NewGuid()
            };

            int dbResult = _resetPasswordManager.Insert(rp);

            if (dbResult > 0)
            {
                string siteUri  = ConfigHelper.Get <string>("SiteRootUri");
                string resetUrl = $"{siteUri}/Account/ResetPasswordConfirmed/{rp.ResetGuid}";
                string body     = $"Merhaba {res.Result.UserName}; <br>Şifrenizi değiştirme için <a href='{resetUrl}' target='_blank'>tıklayınız.</a>";

                MailHelper.SendMail(body, res.Result.Email, "Şifre değiştirme");
            }
            else
            {
                res.AddError(ErrorMessageCode.UserCouldNotFind, "Hata Oluştu.");
            }


            return(res);
        }