예제 #1
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordForDto model)
        {
            try
            {
                if (string.IsNullOrEmpty(model.UserName))
                {
                    return(BadRequest("Lütfen tüm alanları doldurunuz."));
                }

                var user = await _userManager.FindByNameAsync(model.UserName);

                if (user == null)
                {
                    return(BadRequest($"{model.UserName} isminde bir kullanıcı bulunamadı. Lütfen bilgilerinizi kontrol ediniz."));
                }

                var passResetToken = await _userManager.GeneratePasswordResetTokenAsync(user);

                var resetLink = "http://localhost:1453/Home/ResetPassword?token=" + passResetToken;
                var mailBody  = $"Merhaba {user.UserName}, <br> Şifre sıfırlama linkiniz aşağıdaki gibidir. Eğer şifre sıfırlama linkini siz talep etmediyseniz lütfen bu maili dikkate almayınız. <br><br> {resetLink} <br><br> Teşekkürler, <br> InGame Group";

                Tools.SendEmail(mailBody, user.Email, user.UserName);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
예제 #2
0
        public async Task <IActionResult> ForgotPassword(ForgotPasswordForDto model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var json       = JsonConvert.SerializeObject(model, Formatting.Indented);
            var httpClinet = _httpClientFactory.CreateClient("ingamedemo");
            var response   = await httpClinet.PostAsync("account/forgotpassword", new StringContent(json, Encoding.UTF8, "application/json"));

            if (!response.IsSuccessStatusCode)
            {
                var message = await response.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(message))
                {
                    message = "Beklenmedik bir hata meydana geldi. Lütfen daha sonra tekrar deneyiniz.";
                }
                ModelState.AddModelError("", message);
            }
            else
            {
                AddSweetAlert("", "Şifre reset linkiniz mail adresine gönderilmiştir. Lütfen mail adresinizi kontrol ediniz.", NotificationType.success);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }