将 X509Certificate2 存储在数据库中
-
19-09-2019 - |
题
是否可以将 X509Certificate2 存储在 SQL Server 表中,而不是从文件系统中提取 .p12 文件?我相信你可以,但不知道如何去做。
其他提示
使用。出口()然后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永远剥夺它)。
不隶属于 StackOverflow