1

나는 이것에 관해 많은 미해결 질문을 보았습니다. 분명히 많은 개발자가 past이 이슈를 얻었지만 게시 된 솔루션을 보지 못했습니다.클라이언트 인증서 요청

내 ASP.NET MVC 5 웹 앱용 스마트 카드 (X.509 CAC)를 읽으려고합니다. 다음과 같이 인증서 정보를 가져 오려고 시도 할 때 :

var request = HttpContext.Request; 
var cert = request.ClientCertificate; 

인증서는 값이 비어 있습니다.

다른 웹 사이트에서 보는 것처럼 사용자 인증서 정보를 요청하는 대화 상자가 표시되지 않는 것 같습니다. 이 대화 상자는 어떻게 표시합니까?

SSL을 사용하여 실행 중입니다. 내 applicationHost.config 파일은이 있습니다

<access sslFlags="SslRequireCert" /> 

참고 :

<authentication> 
     <anonymousAuthentication enabled="false"/> 
     <basicAuthentication enabled="false" /> 
     <clientCertificateMappingAuthentication enabled="false" /> 
     <digestAuthentication enabled="false" /> 
     <iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true"> 
     <manyToOneMappings> 
      <add name="Authentication Certificate" 
       enabled="true" 
       permissionMode="Allow" 
       userName="foo" 
       password="bar"> 
       <rules> 
        <add certificateField="Issuer" certificateSubField="CN" matchCriteria="*localhost*" compareCaseSensitive="false" /> 
       </rules> 
      </add> 
     </manyToOneMappings> 
     </iisClientCertificateMappingAuthentication> 
     <windowsAuthentication enabled="false"> 
      <providers> 
       <add value="Negotiate" /> 
       <add value="NTLM" /> 
      </providers> 
     </windowsAuthentication> 
    </authentication> 

가 여기 내 액세스 노드입니다 사용자 이름/암호 = foo는/막대가 의심스러운. 왜 이것이 사용자 측에서 채워지는 것입니까? 이 서비스와 관련된 필수 서비스 계정이 있습니까?

나는 또한 시도 간단한 구성 :

페이지가 정상적으로 표시됩니다,하지만 난 내 클라이언트 인증서를 유혹하고 있지 않다됩니다 어떻게됩니까
<authentication> 
     <anonymousAuthentication enabled="false" userName="" /> 
     <basicAuthentication enabled="false" /> 
     <clientCertificateMappingAuthentication enabled="true" /> 
     <digestAuthentication enabled="false" /> 
     <iisClientCertificateMappingAuthentication enabled="false"> 
     </iisClientCertificateMappingAuthentication> 
     <windowsAuthentication enabled="false"> 
      <providers> 
       <add value="Negotiate" /> 
       <add value="NTLM" /> 
      </providers> 
     </windowsAuthentication> 
    </authentication> 

.

고객 인증서가 분명하므로 다른 웹 사이트에서 요청할 수 있습니다. 나는 IIS 익스프레스 (10)

답변

0

을 사용하고

enter image description here

문제는 비주얼 스튜디오 2015는 솔루션의 하위 디렉토리 중 하나에 자사의 IIS 익스프레스 ApplicationHost.config 파일을 넣습니다. .vs/config 디렉토리에 있습니다.

(1) 먼저 확인 구성하면 (SslRequireCert 또는 협상) 일 것이라고 생각하는지에 관한 것입니다 수 있도록이 문제에 실행 다른 사람에

나의 제안하는 것입니다. 이 부분은 applicationhost.config 파일에 무엇이 있어야 하는지를 안다면 당신을 안고있을 것입니다.

(2) 두 번째 인증서가 올바르게 설정되어 있어야합니다. 나는 이것이 내 문제의 문제라고 생각하지 않지만,이 속성을 읽지 못하게 할 수 있습니다. mmc (Windows 단추를 누른 후 mmc를 입력), 인증서 (또는 스냅이없는 경우 추가) 및 개인/인증서 및 중간 인증서/인증서 또는 신뢰할 수있는 루트 인증서를 만들 수 있어야합니다./인증서에는 필요한 인증서가 있습니다.

그리고, 내가 말했듯이 :

(3) 당신이 바로 applicationHost.config 파일이 있는지 확인합니다.