C# 强制用户在web应用程序中选择证书

C# 强制用户在web应用程序中选择证书,c#,asp.net,x509certificate2,C#,Asp.net,X509certificate2,即使我们的web应用程序的用户在应用程序开始时从他们的CAC中选择了一个证书,我还是需要强迫他们再次选择以进行验证。我可以使用VS2012 development server在我的本地开发机器上实现这一点,但在部署它之后就不行了: public X509Certificate2 selectCert() { X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

即使我们的web应用程序的用户在应用程序开始时从他们的CAC中选择了一个证书,我还是需要强迫他们再次选择以进行验证。我可以使用VS2012 development server在我的本地开发机器上实现这一点,但在部署它之后就不行了:

 public X509Certificate2 selectCert()
    {
        X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection sol = store.Certificates;
        X509Certificate2 sel = X509Certificate2UI.SelectFromCollection(store.Certificates, "Select Certificate", "Please select a certificate", X509SelectionFlag.SingleSelection)[0];
        return sel;
    }

这看起来像一个服务器端代码。你确定你的web应用程序用户在他们的浏览器中运行代码吗?@WiktorZychla-嗯,这是服务器端代码,我正试图让用户从浏览器中选择他们的一个证书。如果我了解你想要什么,那将永远不会起作用。据我所知,目前没有标准化的HTML5API来访问本地证书存储。而且服务器端永远不会让浏览器请求证书。@WiktorZychla-谢谢,我只是希望我可以让IIS再次请求证书。IIS请求证书只是因为ssl启用了“需要客户端证书”选项。我不知道如何强制服务器在同一会话中再次请求证书。但是你可以考虑从服务器上删除一个CLICKONE应用程序。这样的应用程序在客户端作为托管代码运行时,可以自由请求证书。