TC Kimlik No etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
TC Kimlik No etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Şubat 2012 Pazartesi

T.C. Kimlik Numarası Doğrulama - XML Web Servisi

Bu yazımızda, C# ile XML Web Servislerini kullanarak http://tckimlik.nvi.gov.tr adresinde hizmete sunulan vatandaşlık numarası doğrulama hizmetini ele alan bir örnek proje geliştireceğiz.

“TCKimlikDogrulama” adında bir Windows Forms projesi oluşturarak başlayalım.

image

Proje açıldıktan sonra, doğrulama için web servisine gönderilecek olan bilgileri kullanıcıdan almak üzere aşağıdaki gibi bir form tasarımı yapalım.

image

Şimdi sıra geldi servis referansını projemize eklemeye…

T.C. İçişleri Bakanlığı Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü tarafından kullanıma sunulan web servisinin adresini aşağıda bulabilirsiniz.
https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx

DİKKAT: KPS Servisi yalnızca SSL (https adresi) üzerinden hizmet veriyor.

Bu servisi proje içerisinde kullanabilmek için öncelikle Solution Explorer içerisinde yer alan References alanına sağ tıklayalım ve Add Service Reference… seçeneğini seçelim.

image

Açılan ekranda Address bölümüne servisin WSDL dosyasının adresini(https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL) verelim, Namespace bilgisi olarak “Kimlik” kullanalım ve GO butonuna tıklayıp, servisin Services bölümünde listelenmesini sağlayalım.

image

Bu işlemlerin ardından OK butonuna tıklayarak servis referansının projeye eklenme sürecini tamamlayalım. Şimdi de, servise çağrı yapıp sonucu alacak olan kodları projeye ekleyelim. Bunun için btnDogrula isimli buton kontrolünün Click olayına aşağıdaki metodu bağlayalım.

image

Bu son işlemin ardından artık projeyi derleyip kullanmaya başlayabiliriz.

ÖNEMLİ NOT: Servise doğrulama için gönderilecek ad ve soyad bilgileri tamamen büyük harflerle yazılmış olarak gönderilmelidir.

T.C. Kimlik No doğrulama algoritması için buradan bilgi alabilirsiniz.

3 Ocak 2009 Cumartesi

T.C. Kimlik No Doğrulama Algoritması

  • T.C. Kimlik No, 11 hanelidir.
  • Her hane rakamsal bir değere sahiptir.
  • İlk hanenin değeri 0 (sıfır) olamaz.
  • İlk 9 hane üzerinde kurulan bir algoritma 10. hanenin değerini verir.
    1,3,5,7 ve 9. hanelerin değerlerinin toplamının 7 katından, 2,4,6 ve 8. hanelerin değerlerinin toplamını çıkartıp, elde ettiğimiz sonucun Mod10'unu alırsak (yani 10'a bölümünden kalan değer), T.C. Kimlik No içerisindeki 10. hanenin değerini elde ederiz.
  • İlk 10 hane üzerinde kurulan başka bir algoritma, 11. hanenin değerini verir.
    İlk 10 hanenin değerleri toplamının Mod10'u, T.C. Kimlik No içerisindeki 11. hanenin değerini verir.


XML Web Servisleri üzerinden T.C. Kimlik No doğrulama ile ilgili bilgiler için buradan faydalanabilirsiniz.

Servise gitmeden önce, bu yazıdaki algoritmayı kullanarak bir ön denetim yapmak faydalı olacaktır.