ASP.NET ile TC Kimlik DoÄŸrulama

Date Temmuz 15, 2008

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 …

Sende Yorum Yaz ...

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

eXTReMe Tracker