我正在使用基于C#和MVC的用户证书开发一个身份验证系统,我遇到了一些问题。
我使用带有CA证书的SSL安全性,我想在客户端获取一些证书。当我在本地运行我的应用程序时,我获得了个人证书,我的身份验证系统正常工作。
但是,当我在服务器端运行相同的应用程序时,如果在导航器中安装了任何个人证书,我就不会取回...
在这里,你有正在开发的C#代码。
private X509Certificate2 GetClientCertificate()
{
X509Store userCaStore = new X509Store(StoreName.My,StoreLocation.CurrentUser);
try
{
userCaStore.Open(OpenFlags.OpenExistingOnly);
X509Certificate2Collection certificatesInStore = userCaStore.Certificates
.Find(X509FindType.FindByTimeValid, DateTime.Now, true);
X509Certificate2 clientCertificate = null;
if (certificatesInStore.Count > 0)
{
clientCertificate = certificatesInStore[0];
}
else
{
return null;
}
return clientCertificate;
}
catch
{
throw;
}
finally
{
userCaStore.Close();
}
}