Kimlik Paylaşım Sistemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

berdem hocam verdiğiniz kodu denedim hata verdi cc := vv.TCKimlikNoSorgula(kullanıcıadı, 'şifre', TC); bu bölümde hata veriyor hata Undeclared identifier : 'kullanıcıadı'
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen Berdem »

yusuf yazdı:berdem hocam verdiğiniz kodu denedim hata verdi cc := vv.TCKimlikNoSorgula(kullanıcıadı, 'şifre', TC); bu bölümde hata veriyor hata Undeclared identifier : 'kullanıcıadı'
Bende çalışıyor kullanıcı adınızı ve şifrenizi tekrar kontrol edin lütfen.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

function TCKimlikNoSorgula(const userid: Integer; const pwd: WideString; const TcKimlikNumarasi: Int64): TCKimlikNoKisiBilgi; stdcall;
Berdem hocam vsdl de dikkatimi çeken bişey userid integer benim kullanıcı adım ise String sorun ondan olabilirmi acaba
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen Berdem »

Merhaba,
olabilir. Kullanıcı adı integer şifre string olarak verilmiş.
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen deltas »

kullanıcıadı diye kullandığınız değeri tanımlamanız lazım. aşşağıdaki gibi. global değişken olarakta tanımlayabilirisiniz.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
kullaniciadi:integer;
begin
kullaniciadi:=strtoint(edit1.text);
end;
veya direk olarak değeri de girebilirsiniz. aşşağıdaki gibi 1234567=kullanıcıadı olsun, 111111=şifre olsun

Kod: Tümünü seç

cc := vv.TCKimlikNoSorgula(1234567, '11111111', TC);
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

deltas hocam eğer benim kullanıcı adım rakamla olsa dediğiniz olur benim kullanıcı adım harfle yani mesela yusuf
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
kullaniciadi:integer;
begin
kullaniciadi:=strtoint(edit1.text);
end;

bu şekilde hata veriyor hata 'kullanıcı adı' is not a valid integer value
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen deltas »

@yusuf hocam sizdeki şifrenin bu iş için olduğundan eminmisiniz? yani bu adreste kullanılan şifre integer. belkide sizdeki şifre Sağlık bakanlığı üzerinden değilde başka bi sistem üzerinden çalışıyordur. yani başka bir wsdl kullanımı içinde olabilir. Direk nvi.gov.tr'ye aitte olabilir. Size verilen şifredeki kağıtta hangi wsdl olduğu ve adresi yazar.
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

deltas hocam bendeki şifre zaten sağlık bakanlıgının şifresi değil zaten bendeki şifre https://kps.nvi.gov.tr nin birde benim şifrem integer ama kullanıcı adım string saygılar.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

arkadaşlar cevap gelmeyecekmi
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen aslangeri »

s.a.
Arkadaşlar öncelikle bir konuyu netleştirelim.
Sağlık bakanlığı ile nvi arasında anlşama var.
sağlık bakanlığı kendine bağlı kurumlara verdiği kullanıcı adı ve şifre ile tckimlik bilgilerine ulaşmanıza izin veriyor.
Birde kurumlar (örneğin belediyeler) nvi ile anlaşarak vpn ile mernis serverlarına bağlanarak tckimilk sorgulamaları yapabiliyorlar.
Sağlık bakanllığının aracılığı ile ulaşıldığı zaman bir problem yok. ordan ulaşılıabiliniyor hatta orda kullanıcı adları rakam ve sifrelerde karakterlerden oluşuyordu.
Vpn üzerinden bağlanıldığı zaman ise (burda kullanıcı adı string şifre rakamlar)visual studio ile sorgulama yapılabiliyor ancak delphiden sorgulama yapıldığı zaman (wdsl dosyaları vs oluşturuluyor derleme tamam ancak sorguyu gönderdiğiniz zaman) kullanıcı authorizasyonu ile ilgili sorun oluyor(du).
Sanırım @yusuf senin probleminde bu.
Bu konuda biz; visual studio da kendi kurumumuz için bir web servise yapıp delphiden (ve diğer uygulamalardan) onu kullanarak sorunu halletmişidik).
Sizede aynısını tavsiye ederim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

Arkadaşlar kps sistemini yapan firma tamamen çifte standart uyguluyor C# İçin örnekler yapmışlar hiç kod yazmadan çalışıyor açıklayıcı makaleler yazmışlar C# İçin delphi için hiç bir şekilde yardımcı olmuyorlar şimdi ben Delphi üsttları hocaları şu konuyu çözmeye davet ediyorum lütfen neredesiniz sevgili hocalarım
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen deltas »

@aslangeri hocam Sağlık Bakanlığının wsdl için sorun şifre ve kllanıcı adı sorunu değildi. genel olan bir problemdi. iodocument ekleyince düzeliyor. hafta sonu üzerinde biraz çalıştım. sorunsuz bağlantı yapabildim.
@yusuf hocam siz sağlık bakanlığının değil nvi'nin web servisini kullanıyorsunuz. onn web servisine ben ulaşamadım. eğer elinizde wsdl varsa yardımcı olmaya çalışalım. nvi'nin wsdl leri kapalı yada ip no tanımlamalı.
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

arkadaşlar şöyle bir açıklama var nvi nin sitesinde wsdl de gönderecegim şu açıklamayı bir incelerseniz sevinirim.

Teknoloji
Kimlik Paylaşım Sistemi ' ne aşağıdaki gereksinimleri sağlayan herhangi bir programlama dili ile erişebilir ve geliştirdiğiniz uygulamalara entegre edebilirsiniz.

Kullanmakta olduğunuz programlama dilinin,

Web Servislerini çağırabilme
Web Servis Güvenliği (WS-Security) standartlarını destekleme
özelliklerini sağlaması gerekmektedir.

WS-Security Nedir?
WS-Security, OASIS tarafından geliştirilmiş ve web servislerine güvenlik özellikleri ekleyen bir standarttır (Detaylar için takip ediniz). Eklenen güvenlik özellikleri kullanıcı adı - parola opsiyonlarından gönderilen mesajların şifrelenmesi veya imzalanmasına kadar çeşitlilik göstermektedir. Günümüzde kullanılmakta olan bir çok güncel web servis aracında WS-Security desteği sağlanmaktadır.

WS-Security KPS ' de Nasıl Kullanılmaktadır?
KPS bünyesinde WS-Security ' nin aşağıdaki özellikleri kullanılmaktadır.

UsernameToken
Timestamp
UsernameToken, gönderilen SOAP başlığı içerisinde servise erişim için size verilen kullanıcı adı ve şifrenin taşınmasını sağlayan bölümdür. KPS kapsamında UsernameToken içerisinde kullanıcı adı (Username), Parola (Password), Rastgele Oluşturulmuş Bir Dizi (Nonce) ve Oluşturulma Tarihi (Created) bilgilerinin bulunması zorunludur. Parola, kullanıcı şifresi, nonce ve oluşturulma tarihleri ile hesaplanan dizinin SHA-1 izinin alınarak Base64 ile nitelendirilmesi ile oluşturulmaktadır. Daha detaylı bilgi için takip edebilirsiniz.

Timestamp ise SOAP mesajının oluşturulma ve geçerlilik sürelerini içermektedir. Oluşturulma ve geçerlilik süreleri sunucu tarafında kontrol edilmekte ve geçerliliğini yitirmiş mesajlar işleme alınmamaktadır. Daha detaylı bilgi için takip edebilirsiniz.

WS-Security SOAP Mesaj Örnekleri
KPS üzerinden sunulan IlListesiGetir metoduna ait örnek SOAP mesajları aşağıda örneklenmiştir.

Standart SOAP Mesajı
Klasik bir web servis uygulamasında, benzer bir metodun çağrımı için aşağıdaki gibi hazırlanmış bir SOAP mesajı yeterli olmaktadır (Aşağıdaki XML yapısını bilgisayarınıza indirmek için takip ediniz).

<soapenv:Envelope>
<soapenv:Body>
<ns1:IlListesiGetir/>
</soapenv:Body>
</soapenv:Envelope>
Fakat, üstteki mesajı KPS ' ye gönderdiğinizde "Security requirements are not satisfied because the security header is not present in the incoming message." hatası alınacaktır. Bunun nedeni SOAP mesajı içerisinde gerekli WS-Security bilgilerinin bulunmamasıdır.

KPS için hazırlanan SOAP Mesajı
Yukarıdaki mesaja WS-Security özelliklerinin eklenerek KPS ' den yanıt alınabilmesi için aşağıdaki gibi hazırlanmış bir SOAP mesajı yeterli olacaktır (Aşağıdaki XML yapısını bilgisayarınıza indirmek için takip ediniz).

<soapenv:Envelope>
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true">
<wsu:Timestamp wsu:Id="Timestamp-27789929">
<wsu:Created>2008-02-06T14:04:08Z</wsu:Created>
<wsu:Expires>2008-02-06T14:09:08Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken wsu:Id="UsernameToken-32278793">
<wsse:Username>KullaniciAdi</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/ ... e:Password>
<wsse:Nonce>/qmJdpfcepocmQ19ntGmVw==</wsse:Nonce>
<wsu:Created>2008-02-06T14:04:08Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns1:IlListesiGetir/>
</soapenv:Body>
</soapenv:Envelope>
WS-Security ' nin uygulanması ile birlikte mesaj içerisindeki wsse:Security bölümü eklenmiş ve yukarıda belirtilen özellikler içerisine dahil edilmiştir. Dikkat edilmesi gereken konu başlıkta geçen tarihlerin UTC zaman dilimine ait olması ve KPS sunucuları ile istemci bilgisayar arasındaki zaman farkının 5 dakikadan daha az olması gerekliliğidir.

Şifre ve Nonce değerlerinin nasıl hesaplandığı ve mesaja nasıl eklenmesi gerektiği ile ilgili bilgiyi yukarıdaki bölümlerde bağlantısı verilmiş dokümanlar vasıtası ile öğrenebilirsiniz.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Re: Kimlik Paylaşım Sistemi

Mesaj gönderen yusuf »

Microsoft.NET Uygulamaları
.NET Platformunda KPS bünyesinde kullanılan ve Teknoloji kısmında anlatılan Web Servis Güvenliği (WS-Security) özelliklerini kullanabilmek için Microsoft ' un pazara sunduğu bir kaç ürün alternatifi bulunmaktadır.

Bu ürünler

Microsoft Web Service Extensions 2.0
Microsoft Web Service Extensions 3.0
Windows Communications Foundation (WCF)
şeklinde listelenebilir.

Yukarıda bahsedilen ürünlerin her biri için birer adet Windows Forms uygulama örneği hazırlanmıştır. Tüm örnekler Visual Studio 2005 kullanılarak hazırlanmış ve .NET 2.0 üzerinde test edilmiştir (Windows Communications Framework için .NET 3.0 ' ın sisteminizde kurulu olması gerekmektedir).

Örnekleri aşağıdaki bağlantılar aracılığı ile indirebilirsiniz.

Microsoft WSE 2.0 http://rapidshare.com/files/138719556/WSE2.zip.html
Microsoft WSE 3.0 http://rapidshare.com/files/138720177/WSE3.zip.html
Windows Communications Foundation (WCF) http://rapidshare.com/files/138718990/WCF.zip.html
WCF, KPS bünyesinde kullanılan UsernameToken ' ın PaswordDigest metodunu desteklemediğinden, örnek içerisinde bu özelliğin WCF ' e eklendiği ek bazı sınıflar bulunmaktadır. Bunun dışında tüm örnekler mümkün olduğunca aynı kod yapısını kullanmaktadırlar.
Cevapla