2014-09-10 1 views
0

IE에 클라이언트 인증서를 가져 오거나 설치하려고하는데 js 코드에서 다음 오류가 발생합니다.자바 스크립트로 IE에서 클라이언트 인증서 가져 오기

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에서 보안 수준을 낮게 설정하려고했지만 이미 도움이되지 않습니다. 사용자의 개인 인증서 저장소에 인증서를 수동으로 설치하면 정상적으로 작동합니다.

도움이 매우 감사합니다.

+0

자바 스크립트로 pfx도 가져 왔습니까? – madduci

답변

0

그물에 대한 2 일간의 연구 끝에 마침내이 스크립트를 작동시키는 방법을 찾았습니다. IE 11에서 찾은 유일한 해결책은 IE 설정 상자에서 다음 옵션을 활성화하는 것입니다.

ActiveX settings

0

나는이 당신을 위해 일했다 놀랐어요!

E_ACCESSDENIED

이 방법을 :

은 내가 https://msdn.microsoft.com/en-us/library/windows/desktop/aa378051(v=vs.85).aspx에 0 또는 4 이것은 MSDN 설명서에 기반으로합니다 (예 3) restrictions 매개 변수를 변경 한 것으로 나타 웹에서 호출되었으며 AllowNoOutstandingRequest 또는 AllowUntrustedCertificate가 Restrictions 매개 변수에 지정되었습니다.

관련 문제