문제

내부 IP 주소에만 노출되어야하는 새로운 서비스를 포함하도록 WCF API를 수정하고 있습니다. 내 API의 모든 서비스는 SOAP, Pox 및 JSON으로 제공됩니다. 내가 찾고있는 것은 간단한 IP 주소 필터를 구현하고 내부 IP의 요청을 처리하고 다른 모든 것을 거부 할 수있는 동작 또는 무언가입니다. API의 다른 모든 서비스는 인터넷에서 사용할 수있게되어야하므로 구성에서 작동하고 싶습니다. 나는 인터넷 검색을했지만 WCF에 내장 된 것을 찾을 수 없습니다. 내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

좋아, 나는 그것을 알아 냈고, 내 의견으로는 매끄럽다. 서비스 동작으로 IP 필터 시스템을 구현 한 다음 Web.Config에서 서비스에 추가했습니다. 다음은 새로운 웹 구성 동작 섹션입니다.

<serviceBehaviors>
    <behavior name="ServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <behavior name="RestrictedServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <IPFilter filter="172.*.*.* 127.0.0.1" />          
    </behavior>
  </serviceBehaviors>

IPFilter 클래스는 IDISPatchMessageInspector를 구현하여 가능한 빨리 요청을 포착하고 클라이언트 IP를 검사하고 필터와 일치하지 않으면 예외를 던집니다. 누구든지 관심이 있으시면 코드를 게시 할 수 있습니다.

다른 팁

서비스가 IIS로 호스팅되면 IIS를 사용하여 웹 사이트별로 수행 할 수 있습니다 (어쩌면 응용당 당일 수도 있지만 모르겠습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top