Ara

C# İle Tc Kimlik Numarası Doğrulama: Adım Adım Rehber Ve Kod Örnekleri

TC Kimlik Numarası (TCKN), Türkiye Cumhuriyeti vatandaşlarının kimliklerini doğrulamak için kullanılan 11 haneli bir numaradır. Bu yazıda, C# ile TC Kimlik Numarası doğrulama işleminin nasıl yapılacağını detaylı bir şekilde ele alacağız.

 

TC Kimlik Numarası Doğrulama Nedir?

TC Kimlik Numarası doğrulama, bir kişinin kimlik numarasının geçerli olup olmadığını kontrol etme işlemidir. Bu doğrulama, TCKN'nin belirli kurallara uyup uymadığını kontrol ederek yapılır. TCKN, 11 haneli olmalı ve belirli matematiksel kurallara uygun olarak oluşturulmalıdır.

 

Neden TC Kimlik Numarası Doğrulama Önemlidir?

  • Güvenlik: Sahte kimlik kullanımını önlemek için.
  • Doğrulama: Hizmet sağlayıcıların doğru kişilere hizmet verebilmesi için.
  • Yasal Gereklilikler: Bazı işlemler için TCKN doğrulaması yasal bir gereklilik olabilir.

 

TC Kimlik Numarası Doğrulama Algoritması

TC Kimlik Numarası doğrulama algoritması aşağıdaki kurallara dayanır:

  1. TCKN, 11 haneli olmalıdır.
  2. İlk on hanenin toplamının birler basamağı, onbirinci haneye eşit olmalıdır.
  3. Tek sıradaki (1, 3, 5, 7, 9. haneler) rakamların toplamının 7 katından, çift sıradaki (2, 4, 6, 8. haneler) rakamların toplamı çıkarılır. Bu işlemin 10'a bölümünden kalan, onuncu haneye eşit olmalıdır.

 

C# ile TC Kimlik Numarası Doğrulama Kod Örneği

Aşağıda, C# ile TCKN doğrulama işlemini gerçekleştiren bir sınıf ve bu sınıfı kullanan ana uygulama bulunmaktadır:

using System;

namespace TCKNVerification
{
    public class TCKNValidator
    {
        public bool IsValidTCKN(string tckn)
        {
            if (tckn.Length != 11 || !long.TryParse(tckn, out _))
                return false;

            int[] digits = new int[11];
            for (int i = 0; i < 11; i++)
            {
                digits[i] = int.Parse(tckn[i].ToString());
            }

            int sumOdd = digits[0] + digits[2] + digits[4] + digits[6] + digits[8];
            int sumEven = digits[1] + digits[3] + digits[5] + digits[7];

            int rule10 = ((sumOdd * 7) - sumEven) % 10;
            int rule11 = (sumOdd + sumEven + digits[9]) % 10;

            if (digits[9] != rule10 || digits[10] != rule11)
                return false;

            return true;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            TCKNValidator validator = new TCKNValidator();

            Console.Write("TC Kimlik Numaranızı giriniz: ");
            string tckn = Console.ReadLine();

            if (validator.IsValidTCKN(tckn))
            {
                Console.WriteLine("TC Kimlik Numaranız geçerlidir.");
            }
            else
            {
                Console.WriteLine("TC Kimlik Numaranız geçersizdir.");
            }
        }
    }
}

 

Kimlik Doğrulama Servisi Kullanarak Doğrulama

TC Kimlik Numarası doğrulama işlemi için ayrıca Türkiye Cumhuriyeti Kimlik Doğrulama Servisi'ni de kullanabilirsiniz. Bu servis, kişinin kimlik numarasını ve diğer kimlik bilgilerini doğrulamak için kullanılabilir. Aşağıda, Kimlik Doğrulama Servisi'nin nasıl kullanılacağını gösteren bir örnek bulunmaktadır:

Servis Kullanımı için Gerekli Adımlar

  1. Servise Erişim Bilgileri: Kimlik Doğrulama Servisi'ne erişim için gerekli kullanıcı adı ve şifre bilgilerine sahip olmalısınız.
  2. Servis Bağlantısı: Servis bağlantısı için WSDL dosyasını kullanarak bir servis referansı ekleyin.

C# Kod Örneği

Aşağıda, Kimlik Doğrulama Servisi'ni kullanan bir kod örneği bulunmaktadır:

using System;
using KimlikDogrulamaServisiReference;

namespace TCKNVerification
{
    public class TCKNValidator
    {
        public bool IsValidTCKN(string tckn)
        {
            if (tckn.Length != 11 || !long.TryParse(tckn, out _))
                return false;

            int[] digits = new int[11];
            for (int i = 0; i < 11; i++)
            {
                digits[i] = int.Parse(tckn[i].ToString());
            }

            int sumOdd = digits[0] + digits[2] + digits[4] + digits[6] + digits[8];
            int sumEven = digits[1] + digits[3] + digits[5] + digits[7];

            int rule10 = ((sumOdd * 7) - sumEven) % 10;
            int rule11 = (sumOdd + sumEven + digits[9]) % 10;

            if (digits[9] != rule10 || digits[10] != rule11)
                return false;

            return true;
        }

        public bool VerifyWithService(string tckn, string firstName, string lastName, int birthYear)
        {
            using (var client = new KPSPublicSoapClient())
            {
                try
                {
                    var result = client.TCKimlikNoDogrula(
                        Convert.ToInt64(tckn), 
                        firstName.ToUpper(), 
                        lastName.ToUpper(), 
                        birthYear);

                    return result;
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Hata: {ex.Message}");
                    return false;
                }
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            TCKNValidator validator = new TCKNValidator();

            Console.Write("TC Kimlik Numaranızı giriniz: ");
            string tckn = Console.ReadLine();

            if (validator.IsValidTCKN(tckn))
            {
                Console.WriteLine("TC Kimlik Numaranız geçerlidir.");
            }
            else
            {
                Console.WriteLine("TC Kimlik Numaranız geçersizdir.");
            }

            Console.Write("Adınızı giriniz: ");
            string firstName = Console.ReadLine();

            Console.Write("Soyadınızı giriniz: ");
            string lastName = Console.ReadLine();

            Console.Write("Doğum yılınızı giriniz: ");
            int birthYear = int.Parse(Console.ReadLine());

            if (validator.VerifyWithService(tckn, firstName, lastName, birthYear))
            {
                Console.WriteLine("Kimlik bilgileriniz doğrulandı.");
            }
            else
            {
                Console.WriteLine("Kimlik bilgileriniz doğrulanamadı.");
            }
        }
    }
}

Adım Adım Açıklama

  1. TCKNValidator Sınıfı: TC Kimlik Numarası doğrulama işlemlerini gerçekleştiren metotları içerir.
  2. IsValidTCKN Metodu: Girilen TCKN'nin 11 haneli olup olmadığını, sadece sayılardan oluşup oluşmadığını ve kurallara uygun olup olmadığını kontrol eder.
  3. VerifyWithService Metodu: Kimlik Doğrulama Servisi'ni kullanarak girilen bilgileri doğrular.
  4. Ana Program: Kullanıcıdan TC Kimlik Numarasını ve diğer kimlik bilgilerini alır, TCKNValidator sınıfını kullanarak doğrulama işlemlerini gerçekleştirir.
  5. Sonuç Dönüşü: Doğrulama sonucuna göre geçerli veya geçersiz olduğuna dair mesaj döndürülür.

 

Bu makalede, C# ile TC Kimlik Numarası doğrulama işlemini ve Kimlik Doğrulama Servisi'ni kullanarak nasıl doğrulama yapabileceğimizi detaylı bir şekilde ele aldık. Bu bilgilerle, projelerinizde TC Kimlik Numarası doğrulama işlemini ve kimlik bilgisi doğrulama işlemlerini kolayca entegre edebilirsiniz. Doğrulama işlemi, güvenlik ve doğruluk açısından önemli bir adımdır ve yukarıdaki algoritmalar ve servis kullanımı bu ihtiyacı karşılayacak şekilde tasarlanmıştır.

Author

Bilgisayar programcılığı bölümü mezunuyum. Web ve masaüstü uygulama geliştiricisiyim. C#,.Asp.Net Core, JQuery, Ajax, Entity Framework konularında bilgi sahibiyim. Bu sitenin kurucusuyum . Aynı zamanda şiir yazmayı seven birisiyim. 2023 yılında "Gökkuşağının Koyu Tonu" adlı ilk şiir kitabım yayınlandı. Yazmaya devam ediyorum.
Yorum Yap
Yorumlar (0)