2 Stimmen

Wie man sicher sein, dass eine HTTP-Anforderung lokal ist, wenn HttpListener verwenden

Ich benutze HttpListener . Ich möchte jedoch nur Anfragen verarbeiten, die lokal und nicht von einem anderen Rechner/Server kommen.

Wie kann ich programmatisch überprüfen, ob eine eingehende Anfrage sicher lokal ist? Müsste ich einige der HttpListenerRequest Mitglieder?

5voto

erdomke Punkte 4580

En HttpListenerRequest hat eine Eigenschaft IsLocal die ebenfalls diese Informationen liefern sollte. Es kehrt jedoch zurück false auf meinem Computer. Wenn ich mir den Quellcode ansehe, scheint das daran zu liegen, dass die IsLocal Eigenschaft verwendet den Code:

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

wenn es vielleicht den Code in der (unzugänglichen) InternalIsLocal Eigenschaft, die ist:

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

(Dieser Ausdruck liefert true für meine Situation). Dieser Ansatz könnte vorzuziehen sein, damit Ihr Code beim Übergang zu IPv6 nicht von einer IPv4-Adresse abhängig ist.

1voto

BalusC Punkte 1034465

Prüfen Sie mit RemoteEndPoint Eigenschaft wenn die entfernte Adresse der Anfrage gleich ist 127.0.0.1 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X