Frage

Ich benutze HttpListener. Ich möchte jedoch nur Anfragen bearbeiten, die lokal und nicht von einem anderen Computer/Server stammen.

Wie würde ich programmgesteuert überprüfen, ob eine eingehende Anfrage sicher lokal ist? Müsste ich einige der verwenden HttpListenerRequest Mitglieder?

War es hilfreich?

Lösung

Kundigen Sie sich bei RemoteEndPoint Eigentum Wenn die Remoteadresse der Anfrage entspricht 127.0.0.1.

Andere Tipps

Das HttpListenerRequest hat eine Immobilie IsLocal Dies sollte diese Informationen auch bereitstellen. Es kehrt jedoch zurück false auf meinem Computer. Wenn man in den Quellcode reflektiert, scheint dies das zu sein IsLocal Eigenschaft verwendet den Code:

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

Wenn es vielleicht den Code in der (unzugänglich) verwenden sollte InternalIsLocal Eigenschaft, das ist:

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

(Dieser Ausdruck kehrt zurück true für meine Situation). Die Verwendung dieses Ansatzes kann vorzuziehen sein, damit Ihr Code nicht von einer IPv4 -Adresse abhängt, da der Übergang zu IPv6 durchgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top