質問

保存しておくことはできるX509Certificate2にSQLサーバーテーブルではなく引き。p12ファイルからファイルシステム?ていらっしゃることだと思いますがなんかに行くことがありますか?

役に立ちましたか?

解決

これは、X509Certificate2は RawData ることができる物件で保存へのSQLデータベースです。復興の証明書を利用することができ コンストラクタ

var cert = new X509Certificate2(filename);
var data = cert.RawData;

// save data to database...

// Fetch data from database...

cert = new X509Certificate2(data);

他のヒント

使用.EXPORT()、その後(Convert.ToBase64String)とNVARCHAR(MAX)として保存

それを保存するには:

var cert = new X509Certificate2(filename);
var stringOfCertWithPrivateKey = Convert.ToBase64String(cert.Export(X509ContentType.Pkcs12));

// Or as a regular cert, which will strip the private key out
var stringOfCertWithoutPrivateKey = Convert.ToBase64String(cert.Export(X509ContentType.Cert));

// Save either string as NVARCHAR(MAX) in the DB, it's just a string now.

それからちょうどで(バックDBからそれを取得した後)の復元

var certBytes = Convert.FromBase64String(stringOfCertWithPrivateKey);
var cert = new X509Certificate2(certBytes);

あなたは秘密鍵を保持することを選択したりすることはできませんとしてエクスポート().RawDataよりも優れている使用(使用.RawDataは、常にそれを除去します)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top