如何在我的应用程序mvc上获取客户端证书?

时间:2018-01-19 09:24:44

标签: c# ssl x509certificate2 asp.net-mvc-5.2

我正在使用基于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();
    }
}

0 个答案:

没有答案