前言:
當用戶端掉用承載在IIS中基於basic authentication/digest authentication等等非anonymous驗證模式時,用戶端必須提供相應的credential.
主要注意點:
1. 如何generate 代理類
在利用wsdl command時,必須提供串連到web service上的使用者名稱和密碼才能generate proxy,其文法如下:
wsdl http://webservice-uri/webservice.asmx /username:yourusername /password:yourpassword
2.如何在client application遞交client credential和certificate.
為了提交client 的credential, 我們必須建立一個用戶端的credential,然後隨proxy instance一起遞交到server端以便驗證,如下所時:
Service1 proxy = new Service1();
System.Net.NetworkCredential credential = new System.Net.NetworkCredential("yourusername", "yourpassword", "yourdomain");
proxy.Credentials = credential;
然後我們需要指定用戶端的certificate(public-key 部分),如下:
System.Security.Cryptography.X509Certificates.X509Certificate cert = new System.Security.Cryptography.X509Certificates.X509Certificate("yourcertificate-publickey.cer");
proxy.ClientCertificates.Add(cert);
這樣的話,用戶端就提供了credential和certificate並一起提交之server了 :)當然以上所作的一切,前提條件是web service 所在的server是配置成了基於basic/digest authencation+certificate模式。