使用javascript在IE中导入客户端证书

使用javascript在IE中导入客户端证书,javascript,internet-explorer,ssl,certificate,Javascript,Internet Explorer,Ssl,Certificate,我试图将客户机证书导入/安装到IE中,但我的js代码中出现以下错误 function ImportClientCertificate() { try { var objCertEnrollClassFactory = document.getElementById("objCertEnrollClassFactory"); var objEnroll = objCertEnrollClas

我试图将客户机证书导入/安装到IE中,但我的js代码中出现以下错误

function ImportClientCertificate() 
      {        
          try {
              var objCertEnrollClassFactory = document.getElementById("objCertEnrollClassFactory");

              var objEnroll = objCertEnrollClassFactory.CreateObject("X509Enrollment.CX509Enrollment");

              var sPKCS7 = "-----BEGIN CERTIFICATE-----" +              
              "MIIDADCCAmkCCQ..." +
              "-----END CERTIFICATE-----"

              objEnroll.Initialize(1);  

              //->this line causes the exception
              objEnroll.InstallResponse(3, sPKCS7, 1, "correctpassword");
          }
          catch (ex) {
              alert(ex.description);
              /*Exception being thrown: CertEnroll::CX509Enrollment::InstallResponse: Access is denied. 0x80070005 (WIN32: 5 ERROR_ACCESS_DENIED)*/
          }
      }
这一例外的原因可能是什么?我已经尝试将IE中的安全级别设置为较低,但没有帮助。手动将证书安装到用户的私人证书存储中效果良好


非常感谢您的帮助。

经过两天的网上研究,我终于找到了如何让这个脚本正常工作的方法。我为IE 11找到的唯一解决方案是在IE设置框中启用以下选项


我很惊讶这对你有用

我发现我必须将
限制
参数(在您的示例中为3)更改为0或4。这基于MSDN文档,网址为:

E_访问被拒绝

此方法是从web调用的,并且在限制参数中指定了AllowNoOutstandingRequest或AllowUntrustedCertificate


您是否也使用javascript导入了pfx?