2014-06-26 102 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; 
     } 
    }