2009-08-21 4 views
3

설정에는 WCF 서비스와 우리가 작성한 많은 고객이 포함됩니다. 클라이언트 중 일부는 Silverlight 응용 프로그램을 포함하고 다른 일부는 웹 및 Windows 응용 프로그램을 포함합니다.WCF 인증서 클라이언트에 설치하지 않고 인증

I (think) X.509 인증서를 기반으로 클라이언트를 인증하고 싶습니다. 일반적으로 메시지를 암호화 (일명 디지털 서명)하기 위해 클라이언트에 개인 키를 설치합니다. 서버는 클라이언트 공개 키를 사용하여 암호를 해독하여 메시지가 변경되지 않았는지 확인하고 메시지가 예상 한 사람 (인증 된 사람)인지 증명합니다.

클라이언트 컴퓨터에 인증서를 설치하지 않으려합니다. 배포하기에 너무 까다 롭지 만 고객에게 실제로 그렇게 할 것을 요구하지는 않습니다. 전에 다른 사람에게 말하면서 클라이언트 어셈블리에서 인증서를 묻고, 그것을 읽고 사용했습니다. 그게 가능하니?

예를 들어 누군가 나를 지적 할 수 있다면 좋을 것입니다. 사전에

감사합니다,

데이비드

답변

2

예, 당신은 단순히 .PFX 파일의 내용을 붙여 복사 할 수 있습니다, 인증서 바이트 배열을 얻으려면

var certificate = new X509Certificate2(theByteArrary, "password"); 

같은 암호를 사용하여 인증서 바이트 배열을 전달하여 X509certificate2을로드 할 수 있습니다 .cer (공개 키) 및 .pvk (개인 키)의 조합 인

다음을 수행하여 클라이언트에이 인증서를로드 할 수 있습니다.

var channelFactory = new ChannelFactory<IYourService>(); 
channelFactory.Credentials.ClientCertificate.Certificate = 
             clientCertificate; 

당신이 자동 생성 된 클라이언트 프록시를 사용하거나 .config 파일을 통해 인증서를 구성 선호하는 경우 다음 this from codeproject

좀보고 할 수 있습니다
관련 문제