HesapController.cs içine şifre sıfırlamak için email sağlayacak action yapısını ekliyoruz
public IActionResult SifremiUnuttum()
{
// TODO: Your code here
return View();
}
SifremiUnuttum.cshtml içine aşağıdaki kodları yazıyoruz
@{
ViewData["Title"] = "Şifrenizi mi unuttunuz?";
}
<form method="post" class="card col-6 mx-auto">
<div class="row">
<h1 class="text-center m-5">Şifre unuttum</h1>
<div class="col-3">
<label for="Email" class="label-control">Email Adresiniz</label>
</div>
<div class="col-9">
<input required class="form-control" type="email" name="Email" id="Email">
@if (ViewBag.Hata != null)
{
<div class="alert-danger danger p-3 ml-0 m-2">
@ViewBag.Hata
</div>
}
</div>
</div>
<div class="row mt-3">
<div class="col-3"></div>
<div class="col-9">
<button type="reset" class="btn btn-danger">Sıfırla</button>
<button type="submit" class="btn btn-success">Gönder</button>
</div>
</div>
</form>


HesapController.cs içine tukarıdaki formdan gelen bilgileri işleyecek ve şifre sıfırmala bağlantısı üretip email gönderecek action ekleniyor
[HttpPost]
public async Task<IActionResult> SifremiUnuttum(string Email)
{
if (string.IsNullOrEmpty(Email))
{
ViewBag.Hata = "Email alanı boş bırakılamaz";
return View();
}
AppUser kullanici = await userManager.FindByEmailAsync(Email);
if (kullanici == null)
{
ViewBag.Hata = "Girilen email ile sistemde kullanıcı yok";
return View();
}
//şifre sıfırlama linkini oluştur
var token = await userManager.GeneratePasswordResetTokenAsync(kullanici);
var link = Url.Action(nameof(SifreSifirla), "Hesap",
new { token, email = kullanici.Email }, Request.Scheme);
//email ile gönderiliyor
string emailmesaj = $"Merhaba {kullanici.Ad} <br> Şifrenizi sıfırlamak için aşağıdaki bağlantıya tıklayınız <br>";
Islemler.MailGonder("Şifre sıfırlama bağlantısı", emailmesaj + link, kullanici.Email);
string mesaj = $" <i class='bi bi-check'></i>Sıfırlama bağlantısı <b>{Email}</b> adresine gönderildi <br>";
string l = Url.ActionLink(nameof(Index), "Hesap", null, Request.Scheme);
mesaj += $"<a href='{l}'>Giriş yapın</a>";
return View("Views/Shared/_basarili.cshtml", mesaj);
}

