ASP.NET MVC Email Doğrulama Sayfası (Verification)
April 2019 (0) Iptv 10/9/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.