Pregunta

Estoy usando HttpListener. Sin embargo, solo quiero procesar las solicitudes que provienen localmente, no de otra máquina/servidor.

¿Cómo verificaría programáticamente si una solicitud entrante es local con seguridad? ¿Necesitaría usar algunos de los HttpListenerRequest miembros?

¿Fue útil?

Solución

Verifícalo con RemoteEndPoint propiedad Si la dirección remota de la solicitud es igual 127.0.0.1.

Otros consejos

los HttpListenerRequest tiene una propiedad IsLocal que también debería proporcionar esta información. Sin embargo, está volviendo false en mi computadora. Reflexionando en el código fuente, parece que esto se debe a que el IsLocal La propiedad usa el código:

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

Cuando tal vez debería usar el código en el (inaccesible) InternalIsLocal propiedad que es:

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

(Esta expresión regresa true para mi situación). El uso de este enfoque puede ser preferible para que su código no dependa de una dirección IPv4, ya que la transición se realiza a IPv6.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top