2014-06-26 67 views
0

我需要编写Web服务并将其托管在Azure中。该服务反过来会消耗来自外部站点的另一项服务。因此,我的Azure托管服务是此外部托管服务的客户端。当我提出其他服务的请求时,我需要在我的请求中包含客户端证书。Azure Web服务作为客户端使用客户端证书作为客户端

有没有人成功做到这一点?是否可以在天青网络实例中安装证书?它会重新启动实例吗?如果是这样,指针将不胜感激。

我从来没有与客户端证书(甚至在“真实”客户端)工作,所以请原谅我,如果这是一个newbee问题。

+0

Checj此链接,看看是否有帮助:http://www.dib0.nl/code/367-using-a-client-certificate-with-an-ssl-stream-in- C –

回答

0

您可以通过Azure管理门户添加证书,湛蓝将其添加到计算机证书存储,一旦它部署在虚拟机上的应用程序,或者你可以用你的应用程序保持,例如嵌入的资源和负载它手动并与您的web服务调用一起使用。就像这样:

private X509Certificate2 GetAuthCertificate() 
    {    
     var assembly = Assembly.GetExecutingAssembly(); 
     Stream stream = null; 

     var resources = assembly.GetManifestResourceNames(); 
     foreach (var resource in resources) 
     { 
      if (resource.EndsWith(certificateFilename)) 
      { 
       stream = assembly.GetManifestResourceStream(resource); 
       break; 
      } 
     } 

     if (stream == null) 
      throw new Exception("Certificate not found in embedded rersources"); 

     using (var ms = new MemoryStream()) 
     { 
      stream.CopyTo(ms); 

      var result = new X509Certificate2(ms.ToArray(), "password", X509KeyStorageFlags.Exportable); 
      return result; 
     } 
    }