|
|
Base 64 Yönetimini Kullanarak Basit Bir Şekilde Cookie Şifreleme Yöntemi
|
Cookie' lerini Base64 ile basit bir şekilde şifrelemeye yarayan güzel bir uygulama. |
|
|
|
|
|
|
Cookie kullanımı hemen hemen her üyelik sisteminde kullanımaktadır, Cookielerde güvenlik konusunu daha sonra ele alacağız ama şimdilik %100 güvenli olmayan ancak iş görecek bir Cookie şifreleme tekniğinden bahsedeceğim. Öncelikle sayfamıza 2 adet textbox ve 1 er adet Button ve Label ekleyin,
|
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Xml;
using System.Text;
using System.Security.Cryptography; // Ekliyoruz, using System.Data.OleDb; | Sayfamız yüklenirken Cookie' yi kontrol edecek, eğer varsa Kontrol için kontrole gidecek yok ise Label da hata yazacak.
|
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Convert.ToString(Request.Cookies["benimCerezim"]) != "")
{
Kontrol();
}
else
{
Label1.Text = "Lütfen kullanıcı adı ve şifrenizi yazınız";
}
}
} | Burada Base64 teknolojisi ile Encode ve Decode ediyoruz.
|
static public string EncodeTo64(string toEncode) // Encode
{
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
return returnValue;
}
static public string DecodeFrom64(string encodedData) // Decode
{
byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData);
string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
return returnValue;
} |
Button' un click olayın aşağıdaki kodları yazınız, burada gelen değer encode ediliyor ve benimCerezim olarak çereze atılıyor,
|
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie myCookie = new HttpCookie("benimCerezim");
myCookie["login"] = EncodeTo64(TextBox1.Text); //Gelen değeri Encode ediyoruz
myCookie["pass"] = EncodeTo64(TextBox2.Text); //Gelen değeri Encode ediyoruz
myCookie.Expires = DateTime.Now.AddDays(1); //Çerez 1 gün sonra silinecek
Response.Cookies.Add(myCookie);
Kontrol();
//Kontrol ediyoruz } | Burada ise kullanıcı adı ve şifremiz kontrol ediliyor ama önce benimCerezim koleksiyonundaki user ve pass alınıp Decode edilerek Datada sorgu yapılıyor, eğer varsa Label' de bilgiler yazıyor, yoksa Hata veriliyor.
|
public void Kontrol()
{
HttpCookie myCookie = Request.Cookies["benimCerezim"];
OleDbConnection cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/vt1.mdb"));
OleDbDataReader Okuyucu;
OleDbCommand SorguSQL = new OleDbCommand("Select * from Uyeler where kullanici=@kullanici AND sifre=@sifre", cnn);
SorguSQL.Parameters.Add("@kullanici", OleDbType.VarChar).Value = DecodeFrom64(myCookie["login"]); //Gelen değeri Decode ediyoruz,
SorguSQL.Parameters.Add("@sifre", OleDbType.VarChar).Value = DecodeFrom64(myCookie["pass"]); //Gelen değeri Decode ediyoruz,
//bağlantı durumu, kapalı ise aç,
if (cnn.State == ConnectionState.Closed)
{
cnn.Open();
}
//okumaya başla
Okuyucu = SorguSQL.ExecuteReader();
//eğer varsa oku
if (Okuyucu.Read())
{
Label1.Text = "Hoşgeldiniz " + Okuyucu["adi"].ToString().ToUpper() + ";
}
else
{
Label1.Text = "Hata";
}
} |
Kolay gelsin,
|
|
|
|