Wie Sie sicher sein, dass eine HTTP -Anforderung lokal ist, wenn Sie httplistener verwenden
-
25-09-2019 - |
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?
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.