2014-03-26 1 views
1

.net 응용 프로그램의 클라이언트 인증서를 사용하여 웹 사이트를 인증하려고합니다.클라이언트 인증서로 인증을 시도 할 때 401.2 오류가 발생했습니다.

동일한 인증서를 사용하여 Chrome과 IE를 사용하여 사이트에 액세스 할 수 있습니다. 동일한 컴퓨터에서 오류 상태 코드 401.2가 표시됩니다.

내가 사용하고 코드입니다 :

X509Certificate2 cert2 = new X509Certificate2(x509Cert); 
cert2.PrivateKey = algorithm; 

if (cert2.Verify() && cert2.HasPrivateKey) 
{ 
    WebRequestHandler handler = new WebRequestHandler(); 
    handler.ClientCertificates.Add(cert2); 
    HttpClient client = new HttpClient(handler); 

    string result = await client.GetStringAsync("https://localhost:8443/"); 
} 

편집 :

이제 브라우저는 인증서 저장소에서 사용하는 동일한 인증서를 추출 시도,하지만 난 여전히 같은 오류가 , 그리고 이전 WebClient를 사용하도록 전환했습니다. 다시 동일한 오류가 발생합니다.

실마리를 얻으실 수 있습니다!

감사

로스

답변

0

이 문제는 내 코드 아니었다, 그것은 IIS의 설정 문제였다.

브라우저가 내 Windows 자격 증명을 전송했기 때문에 브라우저가 작동했습니다. 내 앱이이 작업을 수행하지 않아서 실패했습니다. 그런 다음 사이트에서 Windows 인증을 해제했다 http://www.iis.net/configreference/system.webserver/security/authentication/clientcertificatemappingauthentication

:

나는 AD에 클라이언트 인증서 매핑을 가능하게했다. 그러면 응용 프로그램이 예상대로 작동합니다.