Como serviços de “ligar” para canais específicos (tcp, http, ipc) em um servidor Remoting?

StackOverflow https://stackoverflow.com/questions/234067

  •  04-07-2019
  •  | 
  •  

Pergunta

Eu tenho um aplicativo de servidor Remoting complexo que fornece um par de serviços. Os clientes podem actualmente usar tcp e canais de http para se conectar ao servidor.

Agora eu preciso para implementar alguns novos serviços de administração, mas eu quero restringir a sua disponibilidade para a máquina local, ou seja, eu quero criar uma ferramenta de administração que pode usar estes novos serviços, mas eu não quero que os dados sensíveis fisicamente licença o servidor, então eu preciso para restringir a execução da ferramenta de administração no mesmo computador servidor.

Eu pensei sobre a adição de novos serviços e também registrar o canal ipc com o servidor para uso da ferramenta de administração. Agora vem o problema: como posso impedir que os clientes remotos que ligam a estes novos serviços de administração usando o protocolo TCP ou http canal? Posso dizer algo como "registo de serviços x, implementado pela classe C na montagem A, utilizável apenas via ipc", "register serviço y, implementado pela classe D em conjunto A, utilizável via TCP / http" em app.config (ou usando comunicação remota aulas de infra-estrutura)?

É o "utilizável apenas via ipc" parte que confunde-me. (E não, portar para WCF não é uma opção agora.)

Foi útil?

Solução

Não há sobrecargas para RegisterWellKnownServiceType que permitem que você especifique qual o canal se registrar no, nem existem quaisquer métodos no IpcServerChannel para registrar um serviço, de modo que nada disso vai funcionar.

O melhor que posso pensar é escrever um ChannelSink que filtra as mensagens ou fornece segurança. Estes podem ser adicionados para o construtor do seu TcpChannel e HttpChannel para filtrar admin somente chamadas.

Outras dicas

Obter o endereço IP do serviço de chamá-lo. Se é algo que não seja 127.0.0.1 rejeitar a chamada.

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