ASP.NET MVC Email Doğrulama Sayfası (Verification)


April 2019 (0) Iptv 11/21/2024


ASP.NET üyelik sistemlerinde bir gelenek olan üyelerin email adreslerini doğrulama işleminden bahsedelim birazda. Sistemimize üye olanları email adresleri aracılığıyla gerçek kullanıcı olup olmadıklarını anlayabiliriz bu sayede. Bu işlem için sistemin konfigurasyonlarının mail gönderebilecek hale getirilmesi gerek. Yani mail ayarları yapılmalıdır.

<system.net>
   <mailSettings>
      <smtp deliveryMethod="Network">
           <network host="mailhostadresiniz" (örneğin smtp.gmail.com)
                    port="587"
                    userName="emailadresiniz"
                    password="sifreniz"
                    enableSsl="true"/> (SSL gerektiren mail sunucu kullanıyorsanız)
      </smtp>
   </mailSettings>
</system.net>


Bu ayarlar yapıldıktan sonra üyelerin kayıtlarının yapıldığı sırada bir doğrulama postasının otomatik olarak gönderilmesi gerekir. Bu işlemi yapan metodu hazırlamalıyız.

public void SendConfirmationEmail(string username)
{
      MembershipUser user = Membership.GetUser(username);
      string confirmationGuid = user.ProviderUserKey.ToString();
      string verifyUrl = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) +
                         "/Account/Verify?Id=" +
                         confirmationGuid;
      string bodyMessage = string.Format("üyeliğiniz başarıyla oluşturulmuştur. Aşağıdaki linke tıkladığınızda hesabınızın aktif olacaktır.\n");
             bodyMessage += verifyUrl;
      var message = new System.Net.Mail.MailMessage(Models.Configuration.SystemMail, user.Email)
      {
          Subject = "Üyeliğinizi doğrulayın.",
          Body = bodyMessage
      };
     var client = new System.Net.Mail.SmtpClient();
         client.Send(message);
}

Mail gönderen metodumuz da artık hazır olduğuna göre bu metodu kayıt işlemi sırasında kullanabiliriz.

[HttpPost]

public ActionResult Register(RegisterModel model)
{
   if (ModelState.IsValid)
   {
       MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email, false); 

       if (createStatus == MembershipCreateStatus.Success)       {

            SendConfirmationEmail(model.UserName); 

            return RedirectToAction("Confirmation","Account");       }
       else
       {
            ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));

       } 

    } 

    return View(model); 

}

Artık kayıt olan üyelere otomatik olarak mail gönderiliyor.

Bu linke tıklandığında, üye Account controller içindeki Verify action metoduna yönlendirilecektir.

public ActionResult Verify(string Id)
{
     MembershipUser user = Membership.GetUser(new Guid(Id));
 
     user.IsApproved = true;
     Membership.UpdateUser(user);
 
     return RedirectToAction("Welcome");
}

Bu action metod sayesinde linke tıklayan üyenin üyeliği aktif hale getirilmiş oldu.



Yorum yapabilmek için giriş yapınız

Giriş Yap

Sitede Ara

En Çok Okunanlar

Android Cihazlara POP3 E-Posta Hesabı Kurulumu (1773)
Windows simgelerinde beyaz ikon sorunu ve çözümü (1359)
SQL REPLACE() Kullanımı (907)
Yerel Ağ Bağlantısına girmek istediğimde ''Bağlantı özelliklerine erişmek için yeterli yetkiniz yok.Yöneticinize başvurun'' uyarısı.. (522)
Access violation at address 0518fde4 inmodule NETINFO.dll Read of adress 00000000 (467)
CMD komutları ile Windows Aktivasyonu (380)
PatchCleaner v1.4.2.0 indir Windows Installer Temizleme Programı (370)
Bedava Netflix Hesapları 2022 (Ücretsiz Premium Hesaplar) (369)
MailEnable Webmail Unknown or Disabled User Hatası (360)
Server communication failure. Please refresh your browser and try again. (341)
Turbobit Premium Hesaplar Bedava Güncel Üyelikler 2022 (334)
There is already an object named in the database Cozum (332)
Turbobit Premium Hesaplar Güncel Liste 2022 (327)
Windows 10 Gereksiz Servislerin Kapatılması - Resimli Anlatım (307)
Yazıcı hata kodu 0x0000011b sorun ve cozumu (306)
Windows Bileşen Deposu (WinSxS) Klasörünü Temizleme (289)
Adobe After Effects CC 2019 Full İndir – v16.1.1.4 (243)
Linq ile inner Join Kullanımı (239)
ASP.NET MVC Email Doğrulama Sayfası (Verification) (238)
Dinozor Nesline Son Veren Silen Asteroit Felaketi, Nasıl Gerçekleşti? (227)
3 Adımda Server olay loglarının silinmesi (214)
Windows 10 durdurulabilecek hizmetler (199)
Bedava Turbobit Premium Hesap 2022 (%100 Güncel Hesaplar) (193)
Visual Studio 2017 Dil Ekleme/Değiştirme (185)
Yedekleme, Düzenleme, Redmi Note 10 Lite QCN Dosyasını Geri Yükleme ve IMEI’yi Onarma (168)

Son Yorumlar