Pergunta

Eu estou modificando minha WCF API para incluir um novo serviço que deve ser exposto a apenas endereços IP internos. Todos os serviços em minha API estão disponíveis em SOAP, POX e JSON. O que eu estou procurando é um comportamento ou algo que me permite implementar um filtro de endereço IP simples, para processar os pedidos de IP do interno e negar tudo o resto. Eu gostaria que ele funcione na configuração, porque todos os outros serviços na API deve permanecer disponível para a Internet. Fiz algumas googling mas não consigo encontrar nada parecido embutido no WCF. Estou faltando alguma coisa?

Foi útil?

Solução

Ok, eu percebi isso, e seu tipo de mancha, na minha opinião. Eu implementou um sistema de filtro IP como um comportamento de serviço, em seguida, acrescentou que para o meu serviço no web.config. Aqui está a minha nova seção comportamentos de configuração web:

<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>

implementos classe A ipfilter IDispatchMessageInspector para pegar o pedido o mais rapidamente possível, inspeccionar o cliente IP e lançar uma exceção se ele não coincidir com o filtro. Se de ninguém I interessados ??podem postar meu código.

Outras dicas

Se o seu serviço está hospedado no IIS, em seguida, você pode fazer isso com o IIS, em uma base per-site (talvez por aplicativo, mas eu não sei).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top