Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hizmetler, istemci proxy türlerinin otomatik olarak oluşturulmasını ve yapılandırılmasını sağlamak için sık sık meta veriler yayımlar. Hizmete güvenilmediğinde, istemci uygulamaları meta verilerin istemci uygulamasının güvenlik, işlemler, hizmet sözleşmesi türü vb. ile ilgili ilkesine uygun olduğunu doğrulamalıdır. Aşağıdaki örnek, hizmet uç noktasının güvenli olduğundan emin olmak için hizmet uç noktasını doğrulayan bir istemci uç noktası davranışının nasıl yazıldığını gösterir.
Hizmet dört hizmet uç noktasını kullanıma sunar. İlk uç nokta WSDualHttpBinding'i, ikinci uç nokta NTLM kimlik doğrulamasını, üçüncü uç nokta işlem akışını etkinleştirir ve dördüncü uç nokta ise sertifika tabanlı kimlik doğrulamasını kullanır.
İstemci, hizmetin meta verilerini almak için sınıfını kullanır MetadataResolver . İstemci, doğrulama davranışı kullanarak çift yönlü bağlamaları, NTLM kimlik doğrulamasını ve işlem akışını yasaklayan bir ilke uygular. Hizmetin meta verilerinden içeri aktarılan her ServiceEndpoint örneği için, istemci uygulaması, uç noktaya bağlanmak üzere bir Windows Communication Foundation (WCF) istemcisi kullanmaya çalışmadan önce, InternetClientValidatorBehavior'ye uç nokta davranışının bir örneğini ServiceEndpoint ekler. Davranış Validate yöntemi, hizmetteki herhangi bir işlem çağrılmadan önce çalışır ve fırlatarak istemcinin politikasını zorlar InvalidOperationExceptions.
Örneği oluşturmak için
- Çözümü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.
Örneği aynı bilgisayarda çalıştırmak için
Visual Studio için yönetici ayrıcalıklarıyla bir Geliştirici Komut İstemi açın ve örnek yükleme klasöründen Setup.bat çalıştırın. Bu, örneği çalıştırmak için gereken tüm sertifikaları yükler.
\service\bin\Debug konumundan hizmet uygulamasını çalıştırın.
\client\bin\Debug konumundan istemci uygulamasını çalıştırın. İstemci etkinliği, istemci konsol uygulamasında görüntülenir.
İstemci ve hizmet iletişim kuramıyorsa bkz. WCF Örnekleri için Sorun Giderme İpuçları.
Örnekle işiniz bittiğinde Cleanup.bat çalıştırarak sertifikaları kaldırın. Diğer güvenlik örnekleri aynı sertifikaları kullanır.
Örneği bilgisayarlar arasında çalıştırmak için
Visual Studio için bir Geliştirici Komut İstemi'ni yönetici ayrıcalıklarıyla sunucuda çalıştırırken
setup.bat serviceyazın.setup.batbağımsız değişkeniyleserviceçalıştırmak, bilgisayarın tam etki alanı adına sahip bir hizmet sertifikası oluşturur ve hizmet sertifikasını Service.cer adlı bir dosyaya aktarır.Sunucuda, App.config yeni sertifika adını yansıtacak şekilde düzenleyin. Diğer bir ifadeyle,
findValueöğesindeki < özelliğini bilgisayarın tam nitelikli etki alan adıyla değiştirin.Service.cer dosyasını hizmet dizininden istemci bilgisayardaki istemci dizinine kopyalayın.
İstemcide, yönetici ayrıcalıklarıyla Visual Studio için Bir Geliştirici Komut İstemi açın ve yazın
setup.bat client.setup.batöğesiniclientbağımsız değişkeniyle çalıştırmak, Client.com adlı bir istemci sertifikası oluşturur ve istemci sertifikasını Client.cer adlı bir dosyaya aktarır.client.cs dosyasında MEX uç noktasının adres değerini ve
findValuevarsayılan sunucu sertifikasını hizmetinizin yeni adresiyle eşleşecek şekilde ayarlamak için değerini değiştirin. Bunu, localhost'u sunucunun tamamen nitelikli etki alanı adıyla değiştirerek yaparsınız. Yeniden inşa et.Client.cer dosyasını istemci dizininden sunucudaki hizmet dizinine kopyalayın.
İstemcide, yönetici ayrıcalıklarıyla açılan Visual Studio için Geliştirici Komut İstemi'nde ImportServiceCert.bat çalıştırın. Bu, hizmet sertifikasını Service.cer dosyasından CurrentUser - TrustedPeople deposuna aktarır.
Sunucuda, yönetici ayrıcalıklarıyla açılan Visual Studio için Geliştirici Komut İstemi'nde ImportClientCert.bat çalıştırın. Bu, istemci sertifikasını Client.cer dosyasından LocalMachine - TrustedPeople deposuna aktarır.
Hizmet bilgisayarında, Visual Studio'da hizmet projesini derleyin ve service.exeçalıştırın.
İstemci bilgisayarda client.exeçalıştırın.
- İstemci ve hizmet iletişim kuramıyorsa bkz. WCF Örnekleri için Sorun Giderme İpuçları.
Örnekten sonra temizlik yapmak için
Örneği çalıştırmayı bitirdikten sonra örnekler klasöründe Cleanup.bat çalıştırın.
Uyarı
Bu betik, bu örneği bilgisayarlar arasında çalıştırırken istemcideki hizmet sertifikalarını kaldırmaz. Bilgisayarlar arasında sertifika kullanan WCF örnekleri çalıştırdıysanız CurrentUser - TrustedPeople deposuna yüklenmiş hizmet sertifikalarını temizlediğinizden emin olun. Bunu yapmak için şu komutu kullanın:
certmgr -del -r CurrentUser -s TrustedPeople -c -n <Fully Qualified Server Machine Name>. For example: certmgr -del -r CurrentUser -s TrustedPeople -c -n server1.contoso.com.