TC Kimlik No doğrulama işlemine, bazı yerlerde kullanıcı kaydı yaparken ihtiyaç duyarız.Bunun çeşitli sebepleri olabilir. En başta gelen sebep ise güvenliktir. Kişinin TC numarasınının doğru olması, TC numarasının o kullanıcıya ait olması v.b konular önemlilik teşkil edebilir.
TCNO doğrulama algoritmaları mevcut. Bir TC Kimlik numarası 11 hanelidir, rakamsaldır, ilk hane 0 olamaz, 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 10. haneyi verir, gibi kurallar vardır. Fakat çok verimli değil çünkü bazen tutmadığı olabiliyor. Bu kontrolü yapabilmemiz için en sağlıklı yöntem Türkiye Cumhuriyeti Nüfus ve Vatandaşlık İşleri Genel müdürlüğü tarafından sunulan TC Kimlik Doğrulama web servisidir. Tabi bu servisi kullanabilmek için öncelikle bize sunulan doğrulama servisindeki xml yapısını anlamalıyız. Bu web servisi http://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx linkinden elde ettik.İçerisinde 2 adet xml yapısı var.
Birisi Doğrulama diğeri ise doğrulama sonucu dönecek olan değer.
Doğrulama :
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<TCKimlikNoDogrula xmlns="http://tckimlik.nvi.gov.tr/WS">
<TCKimlikNo>long</TCKimlikNo>
<Ad>string</Ad>
<Soyad>string</Soyad>
<DogumYili>int</DogumYili>
</TCKimlikNoDogrula>
</soap:Body>
</soap:Envelope>
Xml'in içeriğinden şunu anlıyoruz. Bizim web servise göndereceğimiz TC Kimlik numarası değişkeninin türü long, Ad,Soyad değişken türlerimiz string ve son olarak doğum yılı değişkenimizin türü ise int.
Doğrulama sonucu dönecek değer ise;
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<TCKimlikNoDogrulaResponse xmlns="http://tckimlik.nvi.gov.tr/WS">
<TCKimlikNoDogrulaResult>boolean</TCKimlikNoDogrulaResult>
</TCKimlikNoDogrulaResponse>
</soap:Body>
</soap:Envelope>
Diğer yazılım dillerinde anlık SQL connectionları ile dönen değerleri yazılıma çekiyoruz. Filemakerda bakalım nasıl yapacağız. Test leri yaptıktan sonra sonucu paylaşacağım.