如何使用ASPNET用户帐户访问私钥

本文关键字:访问 私钥 用户 何使用 ASPNET | 更新日期: 2023-09-27 17:47:24

我在导入和访问ASPNET用户的私钥时遇到一些问题。我知道,在windows中手动导入私钥(.pfx文件)时,可以选择将密钥标记为可导出。现在,据我所知,这是为了以后检索私钥所必需的

我的问题在于,我以ASPNET用户的身份导入代码中的私钥,而且似乎没有办法像windows证书导入向导那样将其标记为可导出。需要澄清的是,导入工作正常,但当我访问现在导入的证书上的详细信息时,没有私钥数据。

这是我使用正确的密码打开.pfx文件后用于导入证书的代码。

public void ImportCertificate(X509Certificate2 cert, StoreName name, StoreLocation loc)
{
    X509Store certStore = new X509Store(name, loc);
    StorePermission permission = new StorePermission(PermissionState.Unrestricted);
    permission.Flags = StorePermissionFlags.AddToStore;
    permission.Assert();
    certStore.Open(OpenFlags.ReadWrite);
    certStore.Add(cert);
    certStore.Close();
}

我是搞砸了权限还是导入这个私钥的方式?还是我完全错了?

如何使用ASPNET用户帐户访问私钥

我认为导入证书时需要设置X509KeyStorageFlags.Exportable标志。您没有显示该代码,但带有以下签名的Import方法过载:

public override void Import(string fileName, string password, 
                            X509KeyStorageFlags keyStorageFlags);

或者这个:

public override void Import(byte[] rawData, string password, 
                            X509KeyStorageFlags keyStorageFlags);

这将允许您在导入之前设置它。否则,一切看起来都很好!

Richard