由于智能卡的私钥无法导出,我需要在网站上使用 StoreLocation.My 而不是 StoreLocation.LocalMachine 。
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
int count = 0;
X509Store store = null;
X509Certificate2Collection col = null;
X509Certificate2 cert = null;
store = new X509Store(StoreName.My, StoreLocation.CurrentUser); // Certificate store locaiton is Personal
store.Open(OpenFlags.ReadOnly);
col = store.Certificates;
count = col.Count;
在开发环境(Visual Studio)中,代码按预期工作。当它在IIS上运行时,我找不到任何安装的个人证书。我试图创建一个应用程序池,它作为我的Windows帐户身份而不是网络服务或其他应用程序标识运行,但它没有帮助。
如何在IIS环境下使用个人证书?