使用HttpListener时如何确保http请求是本地的

时间:2010-04-09 12:41:53

标签: .net http httplistener httplistenerrequest

我正在使用HttpListener。但是,我只想处理来自本地的请求,而不是来自其他计算机/服务器的请求。

我如何以编程方式验证传入的请求是否是本地的?我需要使用一些HttpListenerRequest成员吗?

2 个答案:

答案 0 :(得分:5)

HttpListenerRequest有一个属性IsLocal,它也应提供此信息。但是,它正在我的计算机上返回false。反映到源代码中,似乎这是因为IsLocal属性使用代码:

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

或许它应该使用(不可访问的)InternalIsLocal属性中的代码:

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

(对于我的情况,此表达式返回true)。使用此方法可能更为可取,因此您的代码不依赖于IPv4地址,因为转换为IPv6。

答案 1 :(得分:1)

如果请求的远程地址等于127.0.0.1,请与RemoteEndPoint property核对。