Page 13 - Nisan 2026
P. 13

im
    Sayı 1                                                                        BilişimTeknoloji        N san 2026


    KOTkol k                   Kotkolik sayfamızın ilk kodunu bilgisayar mühendisi Erkan Coşkun
                               KKTC İçişleri Bakanlığı Nüfus Servislerini C# ile Consume Etme için
                               hazırlanan yardımcı kodu yayınlıyoruz.

                         Özet
                         Bu çalışmada, KKTC İç şler               webRequest.Credentials = credentialCache;
                         Bakanlığı tarafından sunulan Nüfus
                         serv sler n n C# kullanılarak nasıl       return webRequest;
                                                              }
                         entegre ed leceğ  ele alınmıştır. SOAP
                         tabanlı bu serv s üzer nden k ml k   Bu noktada b rkaç detay öneml d r. İstek t p  POST
                         numarası  le k ş  sorgulama yapılmış,   olarak bel rlenm ş,  çer k t p  XML olarak ayarlanmıştır.
                         dönen XML ver   şlenerek uygulama    Ayrıca serv s, Bas c Authent cat on kullandığı  ç n
                          çer s nde kullanılab l r hale       kullanıcı adı ve ş fre bu aşamada eklenm şt r. TLS 1.2
                         get r lm şt r. Ayrıca ver  modelleme,   kullanımı  se güvenl   let ş m  ç n zorunludur.
                         bağlantı yönet m  ve hata kontrolü
    süreçler  de  ncelenm şt r.
                                                              SOAP Envelope Oluşturma
    Giriş
    Kamu kurumları arasında ver  alışver ş , günümüzde yazılım   Serv se gönder lecek ver  XML formatında hazırlanır:
    s stemler n n vazgeç lmez b r parçasıdır. Özell kle k ml k   private static XmlDocument
    doğrulama g b   şlemlerde merkez  s stemlerden ver  çekmek   CreateSoapEnvelope(Site site, long
    büyük önem taşır.                                         TransactionId, string KimlikNo)
    KKTC'de nüfus b lg ler ne er ş m, İç şler  Bakanlığı tarafından   {
    sağlanan SOAP serv sler  üzer nden yapılmaktadır. Bu          XmlDocument soapEnvelopeDocument = new
    serv sler XML tabanlı çalıştığı  ç n REST serv sler ne göre   XmlDocument();
    daha d kkatl  b r entegrasyon sürec  gerekt r r.
    Bu çalışmada, bu serv s n C#  le nasıl tüket leceğ  gerçek b r       soapEnvelopeDocument.LoadXml($@"
    örnek üzer nden anlatılmıştır.                                <soapenv:Envelope
                                                              xmlns:soapenv=""http://schemas.xmlsoap.org/soa
                                                              p/envelope/""
    SOAP Servisine Bağlan
                                                              xmlns:com=""http://com.netas.nufus.service/"">
    Serv se bağlantı kurarken  lk adım doğru b r HTTP  steğ
                                                                      <soapenv:Header/>
    oluşturmaktır. Bu  şlem aşağıdak  metod  le                       <soapenv:Body>
    gerçekleşt r lm şt r:                                                 <com:KisiSorgulaKimlikNoV2Request>
    private static HttpWebRequest                                             <Header>
    CreateWebRequest(Site site, string url)
    {                                                         <transactionId>{TransactionId}</transactionId>
        HttpWebRequest webRequest =
    (HttpWebRequest)WebRequest.Create(url);                   <application>{site.Nufusappname}</application>

        webRequest.Headers.Add("SOAPAction",                  <operationName>{OperationName}</operationName>
    SoapAction);
        webRequest.ContentType =                              <transactionDate>{DateTime.Now:yyyy-MM-
    "text/xml;charset=\"utf-8\"";                             ddTHH:mm:ss}</transactionDate>
        webRequest.Accept = "text/xml";                                       </Header>
        webRequest.Method = "POST";
        webRequest.UserAgent = "Apache-                       <KimlikNo>{KimlikNo}</KimlikNo>
    HttpClient/4.1.1 (java 1.5)";
                                                              </com:KisiSorgulaKimlikNoV2Request>
        ServicePointManager.SecurityProtocol =                        </soapenv:Body>
    SecurityProtocolType.Tls12;                                   </soapenv:Envelope>");

        CredentialCache credentialCache = new                     return soapEnvelopeDocument;
    CredentialCache();                                        }
        credentialCache.Add(new Uri(url), "Basic",
            new
    NetworkCredential(site.Nufuskullaniciad,
    site.Nufussifre));
                                                                                        Devamı sonrak  sayfada...
                                                                                                             Sayfa 12
   8   9   10   11   12   13   14   15   16   17   18