방법: HTTPS를 사용하여 신뢰할 수 있는 사용자 지정 세션 바인딩 만들기
이 항목에서는 신뢰할 수 있는 세션에 SSL(Secure Sockets Layer) 전송 보안을 사용하는 방법을 보여 줍니다. HTTPS를 통해 신뢰할 수 있는 세션을 사용하려면 신뢰할 수 있는 세션 및 HTTPS 전송을 사용하는 사용자 지정 바인딩을 만들어야 합니다. 코드를 사용하여 명령적으로 또는 구성 파일에서 선언적으로 신뢰할 수 있는 세션을 사용할 수 있습니다. 이 절차에서는 클라이언트와 서비스 구성 파일을 사용하여 신뢰할 수 있는 세션 및 <httpsTransport> 요소를 사용할 수 있습니다.
이 절차의 핵심 내용은 "reliableSessionOverHttps"라는 사용자 지정 바인딩 구성을 참조하는 endpoint 구성 요소에 bindingConfiguration 특성이 포함되어 있다는 것입니다. 그러면 <binding> 구성 요소에서 이 이름을 참조하여 신뢰할 수 있는 세션을 지정할 수 있으며, reliableSession 및 httpsTransport 요소를 포함하여 HTTPS 전송이 사용됩니다.
이 예제의 소스 복사에 대해서는 Custom Binding Reliable Session over HTTPS를 참조하십시오.
CustomBinding으로 서비스를 구성하여 HTTPS로 신뢰할 수 있는 세션을 사용하려면
서비스 유형에 대한 서비스 계약을 정의합니다.
서비스 클래스에 서비스 계약을 구현합니다. 주소 또는 바인딩 정보는 서비스 구현 내에 지정되지 않습니다. 또한 구성 파일에서 해당 정보를 검색하기 위해 코드를 쓰지 않아도 됩니다.
Web.config 파일을 만들어 신뢰할 수 있는 세션 및 HTTPS 전송을 사용하는 "reliableSessionOverHttps"라는 사용자 지정 바인딩과 함께 CalculatorService에 대한 끝점을 구성합니다.
다음 줄을 포함하는 Service.svc 파일을 만듭니다.
<%@ServiceHost language=c# Service="CalculatorService" %>
IIS(인터넷 정보 서비스) 가상 디렉터리에 Service.svc 파일을 저장합니다.
CustomBinding으로 클라이언트를 구성하여 HTTPS로 신뢰할 수 있는 세션을 사용하려면
명령줄에서 ServiceModel Metadata Utility Tool (Svcutil.exe)를 사용하여 서비스 메타데이터에서 코드를 생성합니다.
Svcutil.exe <service's Metadata Exchange (MEX) address or HTTP GET address>
생성된 클라이언트에는 클라이언트 구현에서 충족해야 하는 서비스 계약을 정의하는 ICalculator 인터페이스가 포함되어 있습니다.
또한 생성된 클라이언트 응용 프로그램에는 ClientCalculator의 구현이 포함되어 있습니다. 주소 및 바인딩 정보는 서비스 구현 내에 지정되지 않습니다. 또한 구성 파일에서 해당 정보를 검색하기 위해 코드를 쓰지 않아도 됩니다.
신뢰할 수 있는 세션 및 HTTPS 전송을 사용하는 "reliableSessionOverHttps"라는 사용자 지정 바인딩을 구성합니다.
응용 프로그램에서 ClientCalculator의 인스턴스를 만든 다음 서비스 작업을 호출합니다.
클라이언트를 컴파일하고 실행합니다.
예제
보안
이 샘플에 사용된 인증서는 Makecert.exe를 사용하여 만든 테스트 인증서이므로 브라우저에서 https://localhost/servicemodelsamples/service.svc와 같은 HTTPS 주소에 액세스할 때 보안 경고가 나타납니다.