簡體   English   中英

X509Certificate和.NET Compact Framework 3.5

[英]X509Certificate and .NET Compact Framework 3.5

我正在嘗試實現通過客戶端證書認證的HTTP通信。 在“普通”(即非緊湊型).NET Framework上發送HTTP請求時,它非常簡單:

HttpWebRequest request = ...;
string certificatePath = ...;
string certificatePassword = ...;

request.ClientCertificates.Add(
    new X509Certificate(certificatePath, certificatePassword));                  

但是,在Compact Framework 3.5上, X509Certificate僅具有一個接受字節數組的構造函數,而別無其他。 我想我應該讀取一個證書文件並將其內容傳遞到該字節數組中,但是密碼呢? 我應該如何在Compact Framework上指定它?

我找不到任何使用X509Certificate和密碼的方法。

最后,我決定使用X509Store並從那里獲取證書。 這將使部署比最初預期的要困難一些,但至少是可行的:)

我遲了兩年,但在自己的研究中偶然發現了這個問題。

如果仔細查看文檔的示例代碼,您會發現必須先打開PFX文件,然后將其導出,然后再創建X509Certificate類的另一個實例。

我的理解方式如下:完整的.NET Framework API(即,在桌面上)采用類的構造函數的密碼參數作為重載。 因此,使用完整框架,您可以使用Export方法導出證書的原始數據(即,沒有安全密碼),然后將結果字節數組存儲到文件中。 之后,您將該文件傳輸到移動設備,將該文件讀入字節數組,然后將其傳遞到Compact Framework上的X509Certificate構造函數。

當然,這是解決問題的“原始”方法。 然后必須注意以某種方式保護正在傳輸的數據。

在進一步閱讀時,以這種方式導出PFX文件不包括私鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM