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!”);
}
以上是調(diào)用基于SSL 的WebService 的示例代碼,其中ServicePointManager.ServerCertificateValidationCallback… 這段代碼 是表示不對(duì)服務(wù)端證書(shū)進(jìn)行有效性校驗(yàn)(非第三方權(quán)威機(jī)構(gòu)頒發(fā)的證書(shū),如自己生成的) 。
((a, b, c, d) => { return true; }) 是.Net 3.5的新特性lambda 表達(dá)式,這樣就不用先寫(xiě)一個(gè)函數(shù),再傳入函數(shù)名給RemoteCertificateValidationCallback
Path.GetFullPath()可以傳入相對(duì)路徑,就如示例代碼一樣。比AppDomain.CurrentDoman.BaseDirectory再過(guò)濾字符串方便多啦
設(shè)置了ClientCertificates后 后續(xù)的調(diào)用過(guò)程就和普通http連接一樣啦。唉,雖然調(diào)用成功了,不過(guò)webservice 在.net 平臺(tái)似乎是比較古老的技術(shù)了,網(wǎng)上搜到的關(guān)于webservice的書(shū)也只有2003年的了,要加油學(xué)習(xí)WCF啦!
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄