Asp.Net ile Mernisten veri Çekme

ASP.net-C# İle Web Servisler Kullanılarak Mernisten TcKimlik Numarası İle Kişi Bilgileri Sorgulama


MERNİS (Merkezi Nüfus İdaresi Sistemi) Online kişi bilgileri hizmeti veren bir servistir. Bu bilgileri almak için bir kullanıcı adı ve şifre edinmeniz gerekir. Genellikle kamu kuruluşlarında bulunan (sanırım ücret karşılığında isteyen şirketlerde alabiliyor)izin ile bu hizmetlerden yararlanılabilir.

Sertifikanın Yüklenmesi

https://kpsv2.nvi.gov.tr adresi firefox ile açılır, açılan sayfa üzerinde sağ tıklanarak “sayfa bilgisi göster”/ “güvenlik” sekmesine girilir, “Onay belgesini göster” seçeneği tıklanır ve daha sonra “Ayrıntılar” sekmesine gidilerek "Dışa Aktar" diyip bu sertifika herhangi bir yere kaydedilir. Daha sonra kaydedilen sertifika açılır ve yüklenir (Install).

Yeni Proje Oluşturup Web Service Ekleme

Öncelikle Visual Studio.Net ile yeni proje oluşturulur.


"Solution Explorer" Penceresinden Proje adına sağ tıklanıp "Add Service Reference.." seçilir.
(Resmin büyük hali için resme tıklayın).
Açılan Pencerede “Adress” alanına referansını eklemek istediğimiz servisin wsdl adresi yazılır. “Namespace” alanına ise referansa verilmek istenen ad yazılır. Ben TC Kimlik No'dan kişi sorgulayacağım için
"https://kpsv2.nvi.gov.tr/Services/Wsdl.ashx?Service=KisiSorgulaTCKimlikNoServis" servisini yazdım.

"Service Reference" eklendikten sonra “Solution Explorer” penceresinde eklenen referansın üstüne sağ tıklanır ve açılan menüde “Configure Service Reference...” seçeneği seçilir. Açılan pencerede “Collection Type” seçeneği “System.Collections.Generic.List”olarak ayarlanır ve “OK” düğmesine basılır. Programda sonuçları liste olarak alacağımız için böyle ayarladık eğer dizi kullanırsak "System Array" olarak kalabilir.

Service Reference eklendikten sora config dosyasının görünümü yandaki gibidir. En alttaki
<endpoint address="https://kpsv2.nvi.gov.tr/Services/
RoutingService.svc">

kısmı bizim servis çağrısı yaptığımız adrestir. Servis çağrısı yaptığımız adres ve servis bilgilerini buradan değiştirebiliriz.

Örn: Aynı servisin test hizmeti için <endpoint address="https://kpsv2test.nvi.gov.tr/Services/RoutingService.svc">  olarak değiştirmemiz yeterli olacaktır.
Test aşamasında normal kullanıcıların bilgisi bulunmuyor. Önceden tanımlanmış gerçek olmayan kişilerden oluşuyor. Yani istediğiniz bilgileri alamayabilirsiniz.

Kodlar

    

using WebApplication3.KisiSorgulaTCKimlikNo;// Sonradan eklenenler
using System.Collections.Generic;           //

namespace WebApplication3
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {


            KisiSorgulaTCKimlikNoServisClient client = new KisiSorgulaTCKimlikNoServisClient();
            client.ClientCredentials.UserName.UserName = "Verilen Kullanıcı Adı";
            client.ClientCredentials.UserName.Password = "Verilen Şifre";
           List<kisisorgulatckimliknosorgukriteri> kriterlist = new List<kisisorgulatckimliknosorgukriteri>() 
            {
new      KisiSorgulaTCKimlikNoSorguKriteri() { TCKimlikNo = 12345678912 } 
            };
           KisiBilgisiSonucu sonuc = client.ListeleCoklu(kriterlist);
            Label1.Text = "Ad" + sonuc.SorguSonucu[0].TemelBilgisi.Ad.ToString();

         }
   }
}<br/>
Sayfa yüklendiğinde(Load) belirtilen "kurum-kullanıcı adı ve şifre" ile bağlanacak ve yazılan TC Kimlik Numarası'na ait isim bilgisini Label1 'e yazacak.

Yorumlar

  1. Selam.
    Mernis tarafında servisler değiştirilmiş sanırım, yukarıdaki kod artık çalışmıyor.
    Güncelleme yapabilir misiniz.

    YanıtlaSil
  2. merhaba dediğinizi yapmama rağmen kod çalışmıyor yardım edebilirmisiniz

    YanıtlaSil
  3. merhaba dediğinizi yapmama rağmen kod çalışmıyor yardım edebilirmisiniz
    'The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://kps.nvi.gov.tr/2011/01/01/KisiSorgulaTCKimlikNoServis/ListeleCoklu'. '

    YanıtlaSil
  4. https://kpsbasvuru.nvi.gov.tr/Services/Wsdl.ashx?Service=KisiSorgulaTCKimlikNoServis

    Bu adresi kullanın

    YanıtlaSil
    Yanıtlar
    1. mahmut hocam size zahmet yardımcı olabilimirsiniz çok rica ediyorum
      zekeriyaalma63@gmail.com

      Sil

Yorum Gönder

Bu blogdaki popüler yayınlar