c# - 如何使用证书在 ASP.Net 中调用 soap API?

标签 c# asp.net ssl soap

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

最佳答案

假设这是一个 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 属性。

关于c# - 如何使用证书在 ASP.Net 中调用 soap API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405269/

相关文章:

c# - 代码=403,ACCESS_REFUSED

android - 适用于移动和台式电脑的 Web 应用程序

c# - SQL 插入导致空字段

ssl - 您可以为带有 ssl 证书的子域设置别名吗

c# - 修改数组后将字节数组转换为 C# 中的图像

c# - 防止在单元测试中写入数据库 - .NET MVC/Entity Framework

javascript - 一个像幻灯片一样工作的单页网站

Python - 如何打印有多少网站支持每个密码套件请求

node.js - SSL 错误 : CERT_UNTRUSTED on dotCloud

c# - 使用 System.Runtime.InteropServices 但未找到 HandleRef