Sayfalar

29 Eylül 2012 Cumartesi

Web Servisi ile T.C. Kimlik No Sorgulama

T.C. İçişleri Bakanlığı Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü tarafından sunulan T.C. Kimlik No doğrulama web servisi için güncel adres aşağıdaki gibidir:

https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx

Bu servisi herhangi bir .NET projesine https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL adresi ile Service Reference veya Web Reference olarak ekleyip kullanabiliriz.

Üzerinde sadece girilen T.C. Kimlik No, Ad/Soyad ve doğum yılının doğru olup olmadığını döndüren TCKimlikNoDogrula adında bir metod bulunuyor.

Ben örnek olarak Console Application açtım ve Servis Reference olarak projeme servisin referansını "TRID" isim uzayı ile ekledim, sonra aşağıdaki gibi basit bir kod ile doğrulama yaptırdım:

using System;
using System.Globalization;
using ConsoleApplication1.TRID;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {
                Console.WriteLine(CheckTRID(12345678900, "ad1 ad2", "soyad", 1900));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }

        private static readonly CultureInfo trTR = new CultureInfo("tr-TR");

        public static bool CheckTRID(long id, string firstName, string lastName, int birthYear)
        {
            using (var c = new KPSPublicSoapClient())
                return c.TCKimlikNoDogrula(id, firstName.ToUpper(trTR), lastName.ToUpper(trTR), birthYear);
        }
    }
}

Burada dikkat edilmesi gereken tek şey ad ve soyad parametrelerini büyük harfle göndermek gerektiğidir. Bunu sağlamak için de ToUpper(CultureInfo) metodunu kullanıyoruz. CultureInfo parametresi için önceden tanımlı "tr-TR" kültür sabiti olan trTR'yi veriyoruz.

Hiç yorum yok:

Yorum Gönder