C#調(diào)用WebService使用SSL連接

字號:


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