2010-02-03 4 views
0

WCF를 구성 파일에 보관하고 싶습니다.코드에서 WCF 구성을 제한하십시오.

동시에 데이터가 암호화되지 않은 상태로 전송되는 경우 코드가 요청을 거부하도록하고 싶습니다. 뭔가가 : 요청이 https없이 basichttpbinding 인 경우 예외를 throw합니다.

서비스 코드가 호출되는 방법을 알 수있는 방법이 있습니까? 이 질문처럼 보인다 코멘트에서

편집

는 분명하지 않다.

내가하려는 것은 basutttpBinding 및 https를 사용하여 서비스를 설치하는 것입니다. 그런 다음 관리자가 https를 사용하지 않도록 변경합니다. 그 효과는 데이터가 인터넷을 통해 암호화되지 않은 상태로 전송된다는 것입니다.

+0

서비스 구성이 변경되지 않도록하려면 방법? 예를 들어, basicHttpBinding이 추가되지 않도록하려면? –

+0

예, 질문을 명확하게 수정했습니다 (희망 사항). –

답변

1

자기 호스팅 하시겠습니까 ?? 가장 간단한 방법은 다음과 같습니다 당신은 IIS에서 호스트 물론

ServiceHost serviceHost = new ServiceHost(typeof(Service1), "http://localhost:1234/MyService/xml"); 

foreach (ServiceEndpoint sep in serviceHost.Description.Endpoints) 
{ 
    if(sep.Binding.Scheme != "https") 
    { 
     // either just remove that endpoint, or signal an error 
    } 
} 

,이 조금 난이도가 도착 ... 당신이 검사를 수행하는 사용자 정의를 ServiceHost 자손을 만들 수 있고, 확인 할 수 귀하 IIS 기반 * .svc 파일은 해당 사용자 지정 호스트를 사용합니다. 물론 똑똑한 관리자가 자신의 사용자 정의 호스트 클래스 대신 기본 ServiceHost을 사용하여 속임수를 쓸 수도 있습니다. ......

3

나는 당신이 원하는 것을 이해하고 있는지 확신 할 수 없다. 서비스 자체를 검증하는 것과, 특정 기준을 충족시키지 못한다면 어떤 요청을 거절하는지에 대해 이야기하고 있는가?

SSL을 검사하는 것과 같은 최소한의 일은 가능할 수 있지만, 보안 연결을 통해 호출 한 서비스 만 원한다면 왜 그런지 묻습니다. 보안되지 않은 서비스를 사용하여 서비스를 노출하고 있습니다. 서비스 구성이 올바른지 확인하는 것이 더 바람직하지 않습니까?

1

예제가 없지만 WCF를 사용하여 구성 할 수있는 모든 작업은 코드에서 수행 할 수 있습니다. 구성 파일이 필요하지 않습니다.

관련 문제