HesapController.cs içine yeni Şifre belirlemek için gerekli actionları ekliyoruz
 public IActionResult SifreSifirla()
        {
            return View();
        }Models klasörü içine SifreSifirla.cs modelini oluşturarak şifre sıfırlamak için gerekli olan bilgileri model içine tanımlıyoruz
Models\SifreSifirla.cs
using System.ComponentModel.DataAnnotations;
public class SifreSifirla
{
    [Required(ErrorMessage ="Email boş bırakılamaz")]
    public string Email { get; set; }
    [Required(ErrorMessage ="Token boş bırakılamaz")]
    public string Token { get; set; }
    [Display(Name ="Şifre")]
    [DataType(DataType.Password)]
    [Required(ErrorMessage ="Şifre boş bırakılamaz")]
    public string Sifre { get; set; }
    
    [Compare("Sifre")]    
    [Display(Name ="Şifre tekrarı")]
    [DataType(DataType.Password)]
    [Required(ErrorMessage ="Şifre tekrarı boş bırakılamaz")]
    public string SifreTekrari { get; set; }
}
Views\Hesap\SifreSifirla.cshtml içine yukarıdaki formu oluşturacak kodları yazıyoruz
@model SifreSifirla
@{
    ViewData["Title"] = "SifreSifirla";
    string e=Context.Request.Query["Email"];
    string t=Context.Request.Query["Token"];
}
<form method="post">
    <div class="text-danger" asp-validation-summary="All"></div>
    <input type="hidden" name="Email" value="@e" />
    <input type="hidden" name="Token" value="@t"/>
<h1 class=" text-center">Şifre sıfırla</h1>
    <div class="row mt-3">
        <div class="col-3">
            <label asp-for="Sifre" class="label-control"></label>
        </div>
        <div class="col-9">
            <input asp-for="Sifre" class="form-control">
            <span asp-validation-for="Sifre" class="text-danger"></span>
        </div>
    </div>
    <div class="row mt-3">
        <div class="col-3">
            <label asp-for="SifreTekrari" class="label-control"></label>
        </div>
        <div class="col-9">
            <input asp-for="SifreTekrari" class="form-control">
            <span asp-validation-for="SifreTekrari" class="text-danger"></span>
        </div>
    </div>
    <div class="row mt-3">
        <div class="col-9 offset-3">
            <button type="reset" class="btn btn-danger">Gönder</button>
            <button type="submit" class="btn btn-success">Gönder</button>
        </div>
    </div>
</form>
@section Scripts{
<partial name="_ValidationScriptsPartial" />
}HesapController.cs içine yeni yukarıdaki formdan gelen bilgileri işleyerek yeni şifre belirleyen kodları yazıyoruz.
Aşağıda kullanılan email gönderim metoduna erişmek için buraya ziyaret edebilirsiniz
      
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> SifreSifirla(SifreSifirla m)
        {
            if (!ModelState.IsValid)
                return View(m);
            var kullanici = await userManager.FindByEmailAsync(m.Email);
            if (kullanici == null)
                RedirectToAction(nameof(SifremiUnuttum));
            var sifirla = await userManager.ResetPasswordAsync(kullanici, m.Token, m.Sifre);
            if (!sifirla.Succeeded)
            {
                foreach (var error in sifirla.Errors)
                {
                    ModelState.TryAddModelError(error.Code, error.Description);
                }
                return View();
            }
            return View("Views/Shared/_basarili.cshtml", "Şifreniz başarıyla değiştirildi");
        }
“18 şifre sıfırlama” üzerine bir yorum
Yorumlar kapalı.