public void SSLLearning()
{
ServicePointManager.ServerCertificateValidationCallback
= new RemoteCertificateValidationCallback((a, b, c, d) => { return true; });
SSLWebService sws = new SSLWebService();
cws.ClientCertificates.Add(
X509Certificate.CreateFromCertFile(Path.GetFullPath(@"../../") + @"Resourcescerfile.cer"));
sws.DoSomeThing(“Hello World!”);
}
以上是調用基於SSL 的WebService 的示例代碼,其中ServicePointManager.ServerCertificateValidationCallback… 這段代碼 是表示不對服務端證書進行有效性校驗(非第三方權威機構頒發的證書,如自己生成的) 。
((a, b, c, d) => { return true; }) 是.Net 3.5的新特性lambda 表達式,這樣就不用先寫一個函數,再傳入函數名給RemoteCertificateValidationCallback
Path.GetFullPath()可以傳入相對路徑,就如示例代碼一樣。比AppDomain.CurrentDoman.BaseDirectory再過濾字符串方便多啦
設置了ClientCertificates後 後續的調用過程就和普通http連接一樣啦。唉,雖然調用成功了,不過webservice 在.net 平台似乎是比較古老的技術了,網上搜到的關於webservice的書也只有2003年的了,要加油學習WCF啦!