eray aydoğdu

jQuery and ASP.NET MVC fanatic.

Üyelik Aktivasyon E-Mail’i ASP.NET MVC Membership Framework

Her zamanki gibi yeni üye oluşturuyoruz.Ancak isApproved özelliğini false olarak ayarlıyoruz ki aktivasyon işlemini yani true yapma işlemini kayıt olan kullanıcı e-posta aktivasyonunu doğrulayarak gerçekleştirsin.

   1: //  user
   2: MembershipCreateStatus createStatus;
   3: MembershipUser newUser = Provider.CreateUser(username, password, email, pwQuestion, pwAnswer, false, null, out createStatus);
   4:
   5: if (newUser != null)
   6: {
   7:     // Kullanıcı olusturuldu, aktivasyon mailini gönder.
   8:     SendVerificationMail(newUser);
   9:     return Content("Hesabınız oluşturuldu. E-postanızı kontrol edip aktif hale getirebilirsiniz.");
  10: }
  11: else
  12: {
  13:     // Hata oluştu,gösterelim.
  14:     ModelState.AddModelError("_FORM", ErrorCodeToString(createStatus));
  15: }

Aktivasyon E-Mail Hazırlama

En önemli şeylerden biri de kullanıcı aktivasyon linki hazırlamak.Link kötü amaçlı kullanıcıların oluşturamayacağı kadar zor oluşturulmalı.Bu örnekte biz global unique identifier yada guid
denilen güvenlik ve basit kod arasındaki ters orantıyı ayarlayan nesneyi kullanıcaz.

   1: private void SendVerificationMail(MembershipUser user)
   2: {
   3:     MailMessage email = new MailMessage(
   4:         "info@siteadi.com",
   5:         user.Email
   6:     );
   7:
   8:     Guid guid = (Guid)user.ProviderUserKey;
   9:     email.Subject = "Hoşgeldiniz!";
  10:     email.Body = "Aktivasyon Linki: siteadi/controller/action/" + guid.ToString();
  11:
  12:     SmtpClient smtp = new SmtpClient("smtpadi");
  13:     smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
  14:
  15:     try {
  16:        smtp.Send(email);
  17:     }
  18:     catch (Exception exc){
  19:         // Hata
  20:     }
  21: }

Linki Doğrulama
Yapmamız gereken son bir adım kaldı.GUID request ini alıyoruz ve isApproved i true yapıcaz.

   1: public ActionResult Verify(string id)
   2: {
   3:     Guid guid = new Guid(id);
   4:     MembershipUser user = Membership.GetUser(guid);
   5:     if (user != null && user.IsApproved == false)
   6:     {
   7:         user.IsApproved = true;
   8:         Membership.UpdateUser(user);
   9:         FormsAuth.SetAuthCookie(user.UserName, false);
  10:     }
  11:     else {
  12:         // Yanlıs GUID yada kullanıcı zaten aktif
  13:     }
  14:
  15:     return View();
  16: }

İyi çalışmalar..

3 Responses to “Üyelik Aktivasyon E-Mail’i ASP.NET MVC Membership Framework”

  1. çok teşekkürler eray bey. çok işime yaradı :)

    Yorum by Süleyman — 23 Şubat 2012 @ 07:57

  2. Bunu asp.net membership üzerindende yapabilirmiyiz mvc olmadan

    Yorum by Borahan — 11 Ocak 2014 @ 05:45

  3. evet yapabilirsin

    Yorum by Eray Aydoğdu — 23 Şubat 2014 @ 20:08

Bu yazıya yapılan yorumlar için RSS beslemeleri. TrackBack URL

Leave a Response