Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan sering menerbitkan metadata untuk mengaktifkan pembuatan otomatis dan konfigurasi jenis proksi klien. Ketika layanan tidak tepercaya, aplikasi klien harus memvalidasi bahwa metadata sesuai dengan kebijakan aplikasi klien mengenai keamanan, transaksi, jenis kontrak layanan dan sebagainya. Sampel berikut menunjukkan cara menulis perilaku titik akhir klien yang memvalidasi titik akhir layanan untuk memastikan bahwa titik akhir layanan aman digunakan.
Layanan ini mengekspos empat titik akhir layanan. Titik akhir pertama menggunakan WSDualHttpBinding, titik akhir kedua menggunakan autentikasi NTLM, titik akhir ketiga memungkinkan alur transaksi, dan titik akhir keempat menggunakan autentikasi berbasis sertifikat.
Klien menggunakan MetadataResolver kelas untuk mengambil metadata untuk layanan. Klien memberlakukan kebijakan melarang pengikatan dupleks, autentikasi NTLM, dan alur transaksi menggunakan perilaku validasi. Untuk setiap ServiceEndpoint instance yang diimpor dari metadata layanan, aplikasi klien menambahkan instans perilaku endpoint InternetClientValidatorBehavior ke ServiceEndpoint sebelum mencoba menggunakan client Windows Communication Foundation (WCF) untuk terhubung ke endpoint. Metode perilaku Validate berjalan sebelum operasi apa pun pada layanan dipanggil dan memberlakukan kebijakan klien dengan melemparkan InvalidOperationExceptions.
Untuk membuat contoh
- Untuk membangun solusi, ikuti instruksi dalam Membangun Sampel Windows Communication Foundation.
Untuk menjalankan sampel pada komputer yang sama
Buka Perintah Pengembang untuk Visual Studio dengan hak istimewa administrator dan jalankan Setup.bat dari folder penginstalan sampel. Ini menginstal semua sertifikat yang diperlukan untuk menjalankan sampel.
Jalankan aplikasi layanan dari \service\bin\Debug.
Jalankan aplikasi klien dari \client\bin\Debug. Aktivitas klien ditampilkan pada aplikasi konsol klien.
Jika klien dan layanan tidak dapat berkomunikasi, lihat Tips Pemecahan Masalah untuk Sampel WCF.
Hapus sertifikat dengan menjalankan Cleanup.bat setelah Anda selesai dengan sampel. Sampel keamanan lainnya menggunakan sertifikat yang sama.
Untuk menjalankan contoh program di berbagai komputer
Di server, di Prompt Perintah Pengembang untuk Visual Studio yang dijalankan dengan hak istimewa administrator, ketik
setup.bat service. Menjalankansetup.batdengan argumenservicemembuat sertifikat layanan dengan nama domain komputer yang sepenuhnya memenuhi syarat dan mengekspor sertifikat layanan ke file bernama Service.cer.Di server, edit App.config untuk mencerminkan nama sertifikat baru. Artinya, ubah
findValueatribut dalam <elemen serviceCertificate> menjadi nama domain komputer yang sepenuhnya memenuhi syarat.Salin file Service.cer dari direktori layanan ke direktori klien di komputer klien.
Pada klien, buka Perintah Pengembang untuk Visual Studio dengan hak istimewa administrator, dan ketik
setup.bat client. Menjalankansetup.batargumenclientmembuat sertifikat klien bernama Client.com dan mengekspor sertifikat klien ke file bernama Client.cer.Dalam file client.cs ubah nilai alamat titik akhir MEX dan
findValueuntuk mengatur sertifikat server default agar sesuai dengan alamat baru layanan Anda. Anda melakukan ini dengan mengganti localhost dengan nama domain server yang sepenuhnya memenuhi syarat. Membangun kembali.Salin file Client.cer dari direktori klien ke direktori layanan di server.
Pada klien, jalankan ImportServiceCert.bat di Prompt Perintah Pengembang untuk Visual Studio yang dibuka dengan privilese administrator. Ini mengimpor sertifikat layanan dari file Service.cer ke penyimpanan CurrentUser - TrustedPeople.
Di server, jalankan ImportClientCert.bat di Prompt Perintah Pengembang untuk Visual Studio yang dibuka dengan hak istimewa administrator. Ini mengimpor sertifikat klien dari file Client.cer ke penyimpanan LocalMachine - TrustedPeople.
Pada komputer layanan, buat proyek layanan di Visual Studio dan jalankan service.exe.
Di komputer klien, jalankan client.exe.
- Jika klien dan layanan tidak dapat berkomunikasi, lihat Tips Pemecahan Masalah untuk Sampel WCF.
Untuk membersihkan setelah pengujian sampel
Jalankan Cleanup.bat di folder sampel setelah Anda selesai menjalankan sampel.
Nota
Skrip ini tidak menghapus sertifikat layanan pada klien saat menjalankan sampel ini di seluruh komputer. Jika Anda telah menjalankan sampel WCF yang menggunakan sertifikat di seluruh komputer, pastikan untuk menghapus sertifikat layanan yang telah diinstal di penyimpanan CurrentUser - TrustedPeople. Untuk melakukan ini, gunakan perintah berikut:
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.