Merhabalar
Site ziyaretçileri üye olurken e-mail adreslerinin gerçek olup olmadıklarının doğrulanması için doğrulama(aktivasyon) linki gönderirler.bu link tıklanınca üyelik aktif olmaktadır.Microsoft visual studio ile kodları kopyala/yapıştır komutuyla kullanabilirsiniz.İşte örnek kodlar
kayıt sayfası default.aspx.vb kodları
Imports System.Data
Imports System.Data.SqlClient
Imports System.Net.Mail
Partial Class _Default
Inherits System.Web.UI.Page
Dim baglanti As New SqlConnection
Dim sorgu As New SqlCommand
Dim kontrol As New SqlCommand
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'baglantimizi oluşturuyoruz
baglanti.ConnectionString = ("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
'baglantımızı açıyoruz
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
baglanti.Open()
'aynı eposta adresli kayıtları önlemek için veritabanımızdan girilen eposta adresini kontrol ediyoruz
kontrol = New SqlCommand("select * from uye_tablo where uye_mail=@uye_mail", baglanti)
kontrol.Parameters.AddWithValue("uye_mail", TextBox1.Text)
Dim dr As SqlDataReader
dr = kontrol.ExecuteReader
If dr.Read Then
' Eğer girilen eposta adresi veritabanında kayıtlı ise hata verdirtiyoruz.
Label1.Text = "Kullanıcı adı sisteme kayıtlıdır, şifrenizi unuttuysanız şifre gönder sayfasına gidiniz."
Else
dr.Close()
'Üye onayı için ilk başta 0 değerini atıyoruz
Dim uye_onayli As Integer
uye_onayli = 1
'Basit bir şekilde 2 adet kod oluşturdum siz bunları istediğiniz gibi değiştirebilirsiniz
'1. kayıt sırasındaki zamanı milisaniye olarak alıyor
'2. Rastegele bir sayı oluşturuyor
Dim uye_kod1, uye_kod2 As String
uye_kod1 = System.DateTime.Now.Millisecond
Dim rasgele As New Random
Dim rndsayi As Integer = rasgele.Next(1100, 99999999)
uye_kod2 = rndsayi
Dim sorgu As New SqlCommand("insert into uye_tablo (uye_mail,uye_pass,uye_kod1,uye_kod2,uye_onayli) values (@uye_mail,@uye_pass," & uye_kod1 & "," & uye_kod2 & "," & uye_onayli & ")", baglanti)
sorgu.Parameters.AddWithValue("@uye_mail", TextBox1.Text)
sorgu.Parameters.AddWithValue("@uye_pass", TextBox2.Text)
sorgu.ExecuteNonQuery()
'üstteki kodlarla bilgilerimizi veritabanına kaydediyoruz alttaki kodlarda kayıt sırasındaki girilen eposta adresine mail atıyor
Dim mail As New MailMessage()
Dim client As New SmtpClient()
mail.To.Add(TextBox1.Text)
mail.From = New MailAddress("e-mail adresiniz", "e-mailde görünen ad")
mail.Subject = "Mail ile üye kayıt aktivasyonu"
mail.Body = "Üye kayıt işleminin tamamlanması için verilen linke tıklayınız uye_onayla.aspx?kd1=" + uye_kod1 + "&kod=" + uye_kod2
Dim onlem As New Net.NetworkCredential("sadece kullanıcı adı", "şifreniz")
client.Credentials = onlem
client.EnableSsl = True
client.Port = 587
client.Host = "smtp.gmail.com"
client.Send(mail)
Label1.Text = "Kayıt Başarılı bir şekilde sonlandı."
baglanti.Close()
End If
End Sub
End Classuye onaylamayı sağlayan uye_onayla.aspx.vb kodları
Imports System.Data
Imports System.Data.SqlClient
Partial Class uye_onayla
Inherits System.Web.UI.Page
Dim baglanti As New SqlConnection
Dim sorgu As New SqlCommand
Dim guncelle As SqlCommand
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Quertstring ile gelen bilgilerimizi label-lara atıyoruz
baglanti.ConnectionString = ("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
baglanti.Open()
Dim kd1, kod2 As Integer
kd1 = Request.QueryString("kd1")
kod2 = Request.QueryString("kod")
Try
guncelle = New SqlCommand(("update uye_tablo set uye_onayli=1 where ( uye_kod1=@kd1 and uye_kod2=@kod2)"), baglanti)
guncelle.Parameters.AddWithValue("@kd1", kd1)
guncelle.Parameters.AddWithValue("@kod2", kod2)
guncelle.ExecuteNonQuery()
Label3.Text = "başarıyla aktifleştirildi"
Catch
Label3.Text = "aktifleşme başarısız"
End Try
End Sub
End ClassBasit uye giriş sayfası login.aspx.vb kodları
Imports System.Data.SqlClient
Partial Class login
Inherits System.Web.UI.Page
Dim baglanti As New SqlConnection
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sorgu As New SqlCommand
baglanti.ConnectionString = ("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
Dim sonuc As Integer
Dim sor As New SqlCommand("select count(*) from uye_tablo where uye_mail=@uye_mail and uye_pass=@pass ", baglanti)
sor.Parameters.Add("@uye_mail", Data.SqlDbType.Variant).Value = TextBox1.Text
sor.Parameters.Add("@pass", Data.SqlDbType.Variant).Value = TextBox2.Text
baglanti.Open()
sonuc = sor.ExecuteScalar
Dim sor1 As New SqlCommand("select count(*) from uye_tablo where uye_onayli=@uye_onayli ", baglanti)
sor1.Parameters.Add("@uye_onayli", Data.SqlDbType.Variant).Value = True
Dim aktif As Boolean
aktif = sor1.ExecuteScalar
If sonuc = 1 And aktif = True Then
'eger sonuc birse üye veritabanında var demektir gerekli yetkiyi verebiliriz.....
Session("uye") = "onay"
Session("uye") = Session("uye")
Response.Redirect("ozel.aspx")
ElseIf sonuc = 0 And aktif = False Then
'üye degilsiniz.............................
Label1.Text = "kullanıcı girişi yanlış"
ElseIf sonuc = 1 And aktif = False Then
Label1.Text = "hesap aktif değil"
End If
End Sub
End ClassMesela örnek olarak üye girişi yapmadan ve e-posta aktif edilmeden giriş yapmayı bu örnek kodla sağlayabilirsiniz.
Partial Class ozel
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("uye") = "" Then
Response.Redirect("login.aspx")
End If
End Sub
End Class
kodu kendinize göre uyarlayabilirsiniz.Güle güle kullanın.