如何使用证书调用ASP.Net中的soap API

本文关键字:中的 soap API Net ASP 何使用 证书 调用 | 更新日期: 2023-09-27 18:19:46

我想使用soap API从系统中提取一些数据。API开发人员向我提供了两个证书,并要求我在代码中使用它们。他说,如果我想调用API时不使用它们,我将无法获得完整的数据集。这是我第一次想用证书调用一个肥皂API,我没有任何想法。我在网上搜索了一下,但找不到任何能帮助我的东西。以下是我的申请详细信息:1.ASP.net2.C#3..Net framework 4.0

如何使用证书调用ASP.Net中的soap API

假设这是一个X509证书,您将生成对CERT文件的引用,然后将其添加到WebRequest对象的ClientCertificates属性中。

//You must change the path to point to your .cer file location. 
X509Certificate Cert = X509Certificate.CreateFromCertFile("C:''mycert.cer");
// Handle any certificate errors on the certificate from the server.
ServicePointManager.CertificatePolicy = new CertPolicy();
// You must change the URL to point to your Web server.
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://YourServer/sample.asp");
Request.ClientCertificates.Add(Cert);
Request.UserAgent = "Client Cert Sample";
Request.Method = "GET";
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();

有关更多详细信息,请访问:https://support.microsoft.com/en-us/kb/895971

有时CERT文件受密码保护。这是VB.Net代码,但当文件上有密码时,它会生成CERT对象:

Dim fs As FileStream = File.Open(certfilePath, FileMode.Open, FileAccess.Read)
Dim buffer As Byte()
ReDim buffer(fs.Length)
Dim count As Integer = fs.Read(buffer, 0, buffer.Length)
fs.Close()
Dim cert As X509Certificate2 = New X509Certificate2(buffer, passwordToFile)

还要注意,如果使用SoapHttpClientProtocol(或将其继承到特定类中以使用此SOAP API,其他System.Web.Protocol元素也是如此),则它也包含ClientCertificates属性。