TC kimlik numaranızın geçerliliğini kontrol eden bir çalışma yapacağız.Bunu nerelerde kullanabiliriz sorusu ilk olarak aklımıza gelebilir.Genelde resmi kurumlarda gördüğümüz kayıt sırasında tc kimlik numarası isteme gibi yerlerde sıkça görüyoruz.Bizim buradaki amacımız TC Kimlik servisi hizmetine herhangi bir ücret ödemeden kendi çalışmalarımız için kullanabiliriz.Yapacağımız işler matematiksel işlemler ile girilen değerler arasındaki uygun sonuçların karşılaştırılması ve işlemin sürecinin o aşamadan sonra belli olmasına dayanıyor.Girilen TC Kimlik numaranısının geçerli olup olmadığı kontrol ediliyor.

Bu projede asp.net ajax özelliklerinden ajaxcontroltoolkit eklentilerinin bazılarından yararlanılmıştır.Sisteminizde sorunsuz çalışması için visual studio ya entegre olarak ajaxcontroltoolkit paketinide yüklemeniz gerekiyor.Çalışmamız C# kullanılarak hazırlandı.Geçerli olan sonuçlar bir MSSQL veritabanına kaydediliyor.Kimlik adında bir tablo ve TcKimlikNo adında bir sutün oluşturmanız gerekiyor.

İlk olarak yeni bir web site projesi açıyoruz.Projemize bir textbox , bir button ve bir label ekliyoruz.AJAX özelliklerinin çalışabilmesi için bir adet ToolScriptManager ve FilteredTextBoxExtender ekliyoruz.Hata mesajlarının kontrol için RequiredFieldValidator ekliyoruz ve uygun hata mesajlarını yazıyoruz.AJAX'ı kullanmamızdaki amaçlardan biri de istenmeyen değerlerin girilmesini önlemek amacıyla basit olarak kullanılmıştır.MaxLength değeri ile de 11 karakterden fazla karakter girilmesi engellenmiştir.Örnek olarak oluşturduğumuz default.aspx sayfası aşağıdaki yapıya benzeyecektir.

CODE
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
     <title>TC Kimlik Doğrulama</title>
</head>
<body>
<center>
     <form id="form1" runat="server">
     <div>
         <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
         </cc1:ToolkitScriptManager>
         <cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server"
             FilterType="Numbers" TargetControlID="TextBox1">
         </cc1:FilteredTextBoxExtender>
         <asp:Label ID="Label2" runat="server" Text="TC Kimlik Numaranızı Giriniz"></asp:Label>
        

        

         <asp:TextBox ID="TextBox1" runat="server" MaxLength="11" style="text-align: justify" ></asp:TextBox>
         <asp:Button ID="Button1" runat="server"  OnClick="Button1_Click"
             Text="Kontrol Et" style="text-align: center" />
        

        

         <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
             ControlToValidate="TextBox1" ErrorMessage="Lütfen TC Kimlik Numaranızı Giriniz"></asp:RequiredFieldValidator>
        

         <asp:Label ID="Label1" runat="server"></asp:Label>
        

        

        

     </div>
     <p>
         &nbsp;</p>
     </form></center>
</body>
</html>


Default.aspx dosyasının görünümünü kendi isteğinize göre uygun css yapıları kullanarak şekillendirebilirsiniz.Ben temel olarak en basit halini hazırladım.

Default.aspx.cs dosyasına geçiyoruz.Burada tüm kontrol işlemlerini barındıracağız.Olumlu sonuçları bir mssql veritabanına kaydettireceğiz.

CODE
using System;
using System.Data;
using System.Configuration;
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.Data.SqlClient;


public partial class _Default : System.Web.UI.Page
{
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);

     protected void Page_Load(object sender, EventArgs e)
     {
        
     }

  

     protected void Button1_Click(object sender, EventArgs e)
     {
         int tckimlik;

        
         tckimlik = Convert.ToInt32(TextBox1.Text.Substring(0, 1)) + Convert.ToInt32(TextBox1.Text.Substring(1, 1)) + Convert.ToInt32(TextBox1.Text.Substring(2, 1)) +
             Convert.ToInt32(TextBox1.Text.Substring(3, 1)) + Convert.ToInt32(TextBox1.Text.Substring(4, 1)) + Convert.ToInt32(TextBox1.Text.Substring(5, 1)) +
             Convert.ToInt32(TextBox1.Text.Substring(6, 1)) + Convert.ToInt32(TextBox1.Text.Substring(7, 1)) + Convert.ToInt32(TextBox1.Text.Substring(8, 1)) +
             Convert.ToInt32(TextBox1.Text.Substring(9, 1));

         string son = Convert.ToString(tckimlik).Substring(1, 1);

         if (son == TextBox1.Text.Substring(10, 1))
         {
             Label1.Text = "GEÇERLİ";
            
                 SqlCommand cmd = new SqlCommand("INSERT INTO Kimlik (TcKimlikNo) VALUES (@TcKimlikNo) ", con);
                 cmd.Parameters.AddWithValue("@TcKimlikNo", TextBox1.Text);
                 SqlDataAdapter da = new SqlDataAdapter(cmd);
                 DataSet ds = new DataSet();
                 da.Fill(ds);
                 con.Open();
                 cmd.ExecuteNonQuery();
                 con.Close();
                 TextBox1.Text = "";
            
         }

      

         else
         {
             Label1.Text = "GEÇERSİZ";
             TextBox1.Text = "";
         }
     }
}



Bir Sqlconnection oluşturuyoruz ve web.config dosyasında oluşturacağınız veritabanı bilgilerini ve connectionstringi burada kısaca tanıtmak için kullanıyoruz.Button'un click click eventine kontrol işlemlerini yazıyoruz.Textboxa girilen rakamları tek tek kontrol edip iç işlem yapısında belirtilen algoritmaya uyup uymadığı kontrol ediliyor.Geçerli olduğu takdirde veritabanımıza kaydediyor.Kolay Gelsin ...

 

Yazan: Olcay KÜK 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList