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


April 2019 (0) Iptv 4/18/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

ralfiSoft.com Download

DOWNLOADS