ASP.Net連接WebServer使用Https協議(證書)


ASP.Net使用Https(證書)協議連接WebService

最近使用ASP.Net連接WebService,不過走的協議是Https的,我一般用的使用都是普通的http協議。所以剛開始有點不值從何下手,不過通過查閱資料,這條路是走通了,下面簡單的記錄一下使用方法。

這是網上的教程:

http://www.cnblogs.com/denylau/archive/2010/07/23/1783530.html

WebService入門教程。

 

http://www.cnblogs.com/sufei/archive/2010/03/14/https.html

HTTPS  ASP.Net訪問WebService

 

 

有的朋友並不想直接添加Web引用,想要構建一個類然后供給整個程序使用。

首先要生成一個代理類,但是在生成代理類的時候遇到了問題,沒有證書一直提示無法生成代理類。

通過WSDL我們可以發現,生成代理類有多種方式,第一種也是常用的寫入一個WebService的連接,不過還可以通過文件生成代理類。通過訪問wsdl的連接將源文件保存下來,另存為wsdl后綴名的文件。

 

 

 

 

使用命令參數轉到D:/web 目錄下

 

 

 

 

現在代理類已經生成了,我們就可以使用了。

關於介紹WSDL的帖子還是用很多的,下面是其中一篇

http://www.cnblogs.com/xiaobaidhg/archive/2007/04/11/707956.html

 

 

因為使用使用的證書所以在程序中使用過程中還會提示

"基礎連接已經關閉: 未能為 SSL/TLS 安全通道建立信任關系"證書驗證失敗

http://www.cnblogs.com/sufei/archive/2010/03/23/1692811.html

在代理的構造方法中回調

  public AxisServerExImplService(string ipAddr, string port)

        {

            this.Url = "https://" + ipAddr + ":" + port + "/OTPAuthenSystem/axis/services/asService?wsdl";

            System.Net.ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;

        }

        private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)

        {

            return true;

        }

至此:我們就可以調用Https協議下的WebService了。

 

總結一下:

1、  首先要使用WebService有兩種方式第一直接引用,第二,寫一個代理類。代理類一定要通過WSDL生成,HTTPS協議下生成代理類的時候會提示證書不受信任。通過網頁打開wsdl的地址,另存為一個后綴名為wsdl的文件。

 

2、  引用該類之后還會提示基礎連接已經關閉: 未能為 SSL/TLS 安全通道建立信任關系”證書驗證失敗

在該代理類的構造方法中采用回調private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error){
            // trust any certificate!!!
            System.Console.WriteLine("Warning, trust any certificate");
            //為了通過證書驗證,總是返回true
            return true;
    }

引用命名空間。

using System.Net;
    using System.Net.Security;
    using System.Security.Authentication;
    using System.Security.Cryptography.X509Certificates;

 

解決完這兩個問題之后,其他的問題就迎刃而解了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM