A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
Login ve Cookie

Login ve Cookie Giriş
Web sitelerinde hemen hemen herkesin sık kullandığı üyelik sistemleri vardır. Bu sistemler web sitelerinin bazı sayfalarına girişi engeller. Bu kısımlara dahil olabilmemiz için sisteme üyelik gerekir. Hatta ziyaretciye otomatik giriş imkanı veren bazı sistemlerde vardır. İşte bu makalemde sizlere login girişi ve cookie kavramını anlatmaya çalışacağım.

Step Design
Uygulamamıza linkler isminde bir user control , sayfa1 , sayfa2 ve uye_girisi isimlerinde web formlar ekleyelim. Uygulamamızın Solution Explorer penceresi aşağıdaki gibi olmalıdır.



Uygulamamızdaki sayfa2 isimli windows formda hiçbir kod ve hiçbir nesne olmayacak. Şimdide uygulamamıza eklediğimiz uye_girisi isimli web formumuzu dizayn edelim. (linkler isimli user control de iki adet hyperlink tanımlayın birinin linkini sayfa1e yönlendirin diğerinide sayfa2ye yönlendirin.) uye_girisi sayfamıza az önceki user kontrolü ekleyelim. Onun altına bir tablo içinde 2 adet textbox 1 adet buton ve dilerseniz textboxlar için 2 adet equiredFieldValidator koyabilirsiniz. Artık uye_girisi formumuzun dizaynı aşağıdaki gibi olmalıdır.







Henüz bu aşamada kodlama kısmına geçmiyoruz ve son tasarımımızı yapmak için sayfa1 isimli web formumuzu açıyoruz. sayfa1 isimli web formumuzda şifre girilmişmi yoksa girilmemişmi diye kontrol yaptıracağız eğer girilmemişse uye_girişi sayfasına yönlendireceğiz.eğer şifre girilmiş ise kullanıcıy merhaba (ismi) şeklinde karşılayabiliriz. Bunun için sayfamıza 2 adet label koyalım(yanyana) ve ilk labele merhaba yazalım. ilk sayfamızın görünümüde artık aşağıdaki gibi olmalıdır(yine user kontrolümüzü bu sayfayada eklemeyi unutmayalım!)




Artık tüm sayfalarımızın tasarımını bitirdiğimize göre yavaş yavaş kodlama aşamasına geçebiliriz.

Step Code

Page uye_girisi

bu sayfamızda öncelikle veritabanımızın ilgili tablosuna erişimi sağlayacağız. (veritabanımızda login ismide olup içinde uyeler isminde tek tablo bulunuyor ve kullanici_adi ve sifre olmak üzere iki sütun var).




Sayfamızın code kısmına aşağıdaki gibi global değişkenler tanımlayalım.

Dimbaglanti As NewOleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Server.MapPath("\app_data\login.mdb"))

Dimcommand As NewOleDb.OleDbCommand("select * from uyeler where kullanici_adi=@kullanici_adi and sifre=@sifre", baglanti)

Dimadap As NewOleDb.OleDbDataAdapter

Dimds As NewDataSet

yukarıdaki commanda gördüğünüz gibi sorgu 2 parametre alıyor. birazdan bu parametreleri gireceğiz ve hemen sonrasında çekmiş olacağımız veriyi ds isimli datasetimize aktaracağız. Şimdi hemen işin bu kısmına geçelim...



Bu kısımda yapacağımız iş veri varmı yokmu şeklinde kontrol yaptırmaktır. Bunun için öncelikle hemen parametrelerimizi commanda gönderelim.

baglanti.Open()

command.Parameters.AddWithValue(

"@kullanici_adi", TextBox1.Text)

command.Parameters.AddWithValue(

"@sifre", TextBox2.Text)

adap.SelectCommand = command

adap.Fill(ds,

"gs")

bu kısımda az öncede dediğim gibi commanda textbox1 ve textbox2deki kullanıcı adı ve şifreleri gönderdik. Hemen sonrasındada commandı adaptere aktardıkki veriyi datasete alabileyim(tabi veri varsa).



Şimdi artık elimizde bir datasetimiz var ve biz bunun içinde o kullanıcı adı ve şifreye ait bir veri varmı yokmu bilmiyoruz. Hmen bunun kontrolünü yaptıralım. Çıkan sonuç eğer datasette verimiz var ise bu demektirki kullanıcı giriş yapmış tersi ise kullanıcı şifresini veya kullanıcı adını yanlış girdi veya üyeliği yok! Şimdi sıra geldi bu anlattıklarımızı koda dökmeye...

Ifds.Tables(0).Rows.Count = 1 Then

Dimad As NewHttpCookie("benimcookie")

Dimsimdi AsDateTime = DateTime.Now

ad.Values.Add(

"kullaniciadi", TextBox1.Text)

gördüğünüz gibi ""ds.Tables(0).Rows.Count = 1"" satırı ile datasetimdeki satır sayısı 1 ise elimde veri vardır ve kullanıcı giriş yapmış demektir. işte bu noktada artık cookie oluşturuyorumki kullanıcı daha sonrası için istersen otomatik siteye girebilsin. Dimad As NewHttpCookie("benimcookie") satırı ile cookie ad isimli değişkene aktarıldı. Hemen ardından cookienin zamanını ayarlayabilmek için simdi adında bir datetime oluşturuldu. sonraki satırda ise kullanıcının adını cookiede saklayabilmek için gerekli işlem uygulandı.



ad.Expires = simdi.AddHours(1)

Response.Cookies.Add(ad)

Session(

"kontrol") = 1

Response.Redirect(

"sayfa1.aspx")


yukarıdaki kodların devamında hemen cookienin zamanını ayarladık. Bunu ben 1 saat olarak belirledim siz dahada uzatabilirsiniz veya düşürebilirsiniz. hemen sonraki satırda ise oluşturmuş olduğumuz cookieyi yapılandırdık ve artık kullanılabilir hale geldi.Uygulamayı derleyip çalıştırdığınızda cookie nin olduştuğunu göreceksiniz(tabikide şu aşamada derleyip çalıştırmayacaksınız.henüz kod kısmımız eksik..)



cookie ile işimiz bitti bir sonraki satırda session("kontrol")=1 diyerek kontrolün yapılmış olduğunu ve üyemizin her sayfaya rahatlıkla girişine olanak sağlayacak kapıyı açtığımızı belirtiyoruz.



hemen sonraki satırda sayfamızı sayfa1 formuna gönderiyoruz..



Else

Response.Redirect(

"uye_girisi.aspx")

End If

baglanti.Close()



buradaki yazı olan son kodlarda tahmin edebileceğiniz gibi eğer datasetimizde veri yoksa aynı sayfaya(uye_girisi) kısmına yönlememizi sağlıyor ve if then else bloğunun kapanmasının ardındanda baglantımızı kapatıyoruz...



Page Sayfa1



sayfa1 isimli web formumuzun load olayında tahmin edebileceğiniz gibi ilk yapmamız gereken iş kullanıcı üye girişini başarıyla yapmışmı yapmamışmı bunu tesbit etmeliyiz. Aşağıdaki kodları tek tek inceleyelim...



IfSession("kontrol") <> 1 Then

Response.Redirect(

"uye_girisi.aspx")

Else

Dimad AsHttpCookie = Request.Cookies("benimcookie")

Label4.Text = ad.Values(

"kullaniciadi")

End If


Eğer session("kontrol") daki değer 1 rakamından farklı bir değer ise kullanıcı sisteme giriş yapmamıştır ve bu sayfayı görmemesi gerekir. Kullanıcıyı hemen uye_girisi formuna geri döndürüyoruz. Eğer kullanıcı üye girişi yapmış ise hemen cookieden kayıt ettiğimiz ismi çekiyoruz ve önceki labelle birlikte merhaba (kullanıcı) şeklinde karşılıyoruz...



Şimdide sıra geldi otomatik girişe.. Bunun için uye_girisi sayfamızın load olayını kontrol etmemiz gerekecek...



Page uye_girisi (load_event)



Try

Dimkontrol_ad AsHttpCookie = Request.Cookies("benimcookie")

Ifkontrol_ad.Values("kullaniciadi") <> "" Then

Session(

"kontrol") = 1

Response.Redirect(

"sayfa1.aspx")

End If

Catchex AsException

End Try

Yukarıdaki kodları satır satır açıklayalım. İlk satırda önceki oluşturduğum cookieyi kontrol_ad şeklinde değişkene atıyorum. eğer bu değişkene ait bir değer var ise(yani kullanıcı daha önce girmişse değer tabiki olacak!!) session("kontrol") kısmına hemen 1 değerini atıyorum. Buda demektirki sayfa1e otomatik olarak geçebilir. zaten hemen o satırın ardındanda sayfa1 formuna yönlendirme yapıyorumki otomatik giriş gerçekleşsin. hatırlarsanız sayfa1de session("kontrol") 1mi değilmi şeklinde kontrol ediliyordu buradaki session("kontrol")ü 1 yapmamızın amacıda budur. TRY CATCH aralığına yazmamdaki amaç ise şu: Eğer cookie boş ise yani kullanıcı hsisteme hiç giriş yapmamış ise cookie boş bir değer döndürür dolayısıyla hata mesajı ile karşılaşırız. Bunu engellemek için TRY CATCH aralığı işimizi görecektir. Yada bu kısımda daha farklı çözümler geliştirmek size kalmış...



Sonuç



Bu makalemizde login işlemlerini ve cookie kavramı hakkında basit bir örnek yaparak bilgi sahibi olmaya çalıştık.Bu örnek aracılığı ile gelişmiş login sistemler kurmak size kalmış.Bir makalemizin daha sonuna geldik. Umarım yararlı olmuştur. Makaleye ait örnek uygulamayı indirmek için tıklayın








  Ad Soyad
  Yorum