具有x.509证书的Web服务。将C#代码移植到Rails

时间:2012-10-09 20:45:41

标签: c# .net ruby-on-rails soap x509

我目前正在使用rails构建一个新的基于Web的系统,以取代传统的.NET解决方案(独立的Win32应用程序)。该系统允许分析师执行许多操作。在许多情况下,用户请求实际上是通过调用第三方Web服务来提供的。 Web服务使用第三方颁发的X.509证书进行保护。用于进行调用的.NET代码如下:

(在Visual Studio中,我在相应的URL上声明了一个名为“ProductionServices”的Web /服务引用)

X509Certificate2 c = new X509Certificate2("filepath", "password");
using (ProductionServices.Items items = new ProductionServices.Items())
{
  try
  {
   //specify client certificate if needed
   if (c != null)
   items.ClientCertificates.Add(c);

   XmlNode node = null;

   node = items.getItemList();

   XmlDocument xd = new XmlDocument();
   xd.AppendChild(xd.ImportNode(node, true));

   .......

}

所以,在这一点上,我们的rails应用程序看起来很漂亮和抛光。但是,我现在需要在rails中复制上面的.NET逻辑,以便我可以将该Web服务数据提取到我的视图中。我已经找到了如何执行此操作的非常基本的示例,但从来没有使用客户端证书的好例子。谁能指出我正确的方向?

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

假设你正在使用Net :: HTTP,请看一下:

http://www.rubyinside.com/nethttp-cheat-sheet-2940.html

在页面的大约一半处有一个名为“带有PEM证书的SSL / HTTPS请求”的示例。

如果你在Net :: HTTP(HTTParty,Typhoeus等)周围使用某种包装,那将取决于所讨论的库。是这样的吗?