Question

J'utilise HttpListener. Cependant, je veux seulement traiter les demandes qui viennent localement, et non d'une autre machine / serveur.

Comment puis-je vérifier si une demande par programme entrant est local pour vous? Est-ce que je dois utiliser quelques-uns des membres de HttpListenerRequest?

Était-ce utile?

La solution

Consultez RemoteEndPoint propriété si l'adresse distante de la demande est égale à 127.0.0.1.

Autres conseils

Le HttpListenerRequest a une propriété IsLocal qui devrait également fournir ces informations. Cependant, il revient false sur mon ordinateur. Reflétant dans le code source, il semble que ce soit parce que la propriété IsLocal utilise le code:

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

quand peut-être qu'il doit utiliser le code dans le (inaccessible) propriété InternalIsLocal qui est:

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

(Cette expression renvoie true pour ma situation). En utilisant cette approche peut être préférable afin que votre code ne dépend pas d'une adresse IPv4 que la transition est faite à l'IPv6.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top