Üye Girişinde Büyük/Küçük Harf Duyarlılığı(case Sensitive)

Üye girişlerinde kullandığımız kullanıcı adları veya şifrelerde bazen büyük veya küçük harf kullanabiliriz. Örneğin 'ahmet' gibi bir kullanıcı ismi yerine 'Ahmet' şeklinde ilk harfi büyük bir kullanıcı adı tercih edebiliriz.İşte böyle durumlarda üyelerin bilgilerini kontrol ederken case sensitive dediğimiz harf duyarlığı önem kazanmaktadır. Şimdi basit bir kullanıcı veritabanı oluşturup tablo adına 'kullanici'. diyelim.

Şimdi bir webform oluşturalım ve aşağıdaki tasarımı yapalım.

 <form id="form1" runat="server">
        <table align="center">
            <tr>
                <td>Kullanıcı Adı:-</td>
                <td>
                    <asp:TextBox ID="txtusername" runat="server"></asp:TextBox>
                    </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td>Şifre:-</td>
                <td>
                    <asp:TextBox ID="txtpassword" TextMode="Password" runat="server"></asp:TextBox></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <asp:Button ID="btnlogin" runat="server" Text="Giriş" OnClick="btnlogin_Click"/></td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
                </td>
            </tr>
        </table>
     </form>  

Şimdi Code Behind bölümüne geçelim ve butonumuza şu kodu yazalım. Using bölümüne  şu ifadeleri ekleyin.

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

 SqlConnection baglanti = new SqlConnection(ConfigurationManager.ConnectionStrings["kullanicidb"].ToString());
    protected void btnlogin_Click(object sender, EventArgs e)
    {
        string sorgu = "SELECT * FROM kullanici WHERE(kulad COLLATE Latin1_general_CS_AS = @kullaniciadi) AND(parola COLLATE Latin1_general_CS_AS = @parola)";
        SqlCommand cmd = new SqlCommand(sorgu, baglanti);
        baglanti.Open();
        cmd.Parameters.AddWithValue("@kullaniciadi", txtusername.Text);
        cmd.Parameters.AddWithValue("@parola", txtpassword.Text);
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adp.Fill(dt);
        if (dt.Rows.Count > 0)
        {

            Session["kullanici"] = dt.Rows[0]["ad"].ToString() + " " + dt.Rows[0]["soyad"].ToString();
            Response.Redirect("adminpanel.aspx");
            baglanti.Close();
        }
        else
        {
            Label1.Text = "Böyle bir kullanıcı yoktur.";
        }
    }

SELECT * FROM kullanici WHERE(kulad COLLATE Latin1_general_CS_AS = @kullaniciadi) AND(parola COLLATE Latin1_general_CS_AS = @parola) 

Yukarıdaki sql sorgusunda hem kullanıcı adı hemde parola için büyük/küçük harf duyarlılığı sağlamak adına COLLATE Latin1_general_CS_AS ifadesi eklenmiştir.

Şimdi adminpanel.aspx.adlı bir webform oluşturalım. Ve şu tasarımı yapalım.

    <form id="form1" runat="server">
    <div>
        <table style="width: 100%;">
            <tr>
                <td class="auto-style2">ADMİN PANELİ</td>
                <td>Hoşgeldiniz :<%=Session["kullanici"] %></td>
                <td>
                    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Güvenli Çıkış</asp:LinkButton></td>
            </tr>
            <tr>
                <td class="auto-style3"></td>
                <td class="auto-style4"></td>
                <td></td>
            </tr>
            </table>
       
    </div>
    </form>

Evet bu formun Code behindena gidelim ve şunu kodu yazalım.

 protected void Page_Load(object sender, EventArgs e)
    {
        if ((Session["kullanici"] == null))
        {
            Response.Redirect  ("hata.aspx");
        }
    }

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Session.Abandon();
        Response.Redirect("Default.aspx");
    }

Hata.aspx sayfamızı da şöyle yapalım.

   <form id="form1" runat="server">
    <div>
        <img src="hatares.png" />
    </div>
    </form>

İşte bu kadar. Kolay gelsin.Hata sayfası için kullandığım resim;



Etiketler
Case Sensitive Duyarlılık Collate
Mesaj Yaz