Pergunta

estou a usar HttpListener. No entanto, eu só quero processar solicitações que vêm localmente, não de outra máquina/servidor.

Como eu verificaria programaticamente se uma solicitação de entrada é local, com certeza? Eu precisaria usar parte do HttpListenerRequest membros?

Foi útil?

Solução

Verificar com RemoteEndPoint propriedade Se o endereço remoto da solicitação for igual 127.0.0.1.

Outras dicas

o HttpListenerRequest tem uma propriedade IsLocal que também deve fornecer essas informações. No entanto, está retornando false no meu computador. Refletindo no código -fonte, parece que isso ocorre porque o IsLocal A propriedade usa o código:

    return this.LocalEndPoint.Address == this.RemoteEndPoint.Address;

quando talvez ele deva usar o código no (inacessível) InternalIsLocal propriedade que é:

    return this.LocalEndPoint.Address.Equals(this.RemoteEndPoint.Address);

(Esta expressão retorna true para minha situação). O uso dessa abordagem pode ser preferível para que seu código não dependa de um endereço IPv4, pois a transição é feita para o IPv6.

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