Domanda

sto usando HttpListener. Tuttavia, voglio solo elaborare richieste che provengono a livello locale, non da un'altra macchina/server.

Come verificherei a livello di programmazione se una richiesta in arrivo è di sicuro locale? Avrei bisogno di usare un po 'di HttpListenerRequest membri?

È stato utile?

Soluzione

Controllare con RemoteEndPoint proprietà Se l'indirizzo remoto della richiesta è uguale 127.0.0.1.

Altri suggerimenti

Il HttpListenerRequest ha una proprietà IsLocal che dovrebbe anche fornire queste informazioni. Tuttavia, sta tornando false sul mio computer. Riflettendo nel codice sorgente, sembra che ciò sia dovuto al fatto IsLocal La proprietà utilizza il codice:

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

Quando forse dovrebbe usare il codice nel (inaccessibile) InternalIsLocal Proprietà che è:

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

(Questa espressione ritorna true per la mia situazione). L'uso di questo approccio potrebbe essere preferibile in modo che il codice non dipenda da un indirizzo IPv4 poiché la transizione viene effettuata su IPv6.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top