【问题标题】:WebClient client ip addressWebClient客户端ip地址
【发布时间】:2011-10-04 22:00:09
【问题描述】:
我有一个从文件系统返回文件的通用处理程序 (ashx)。此处理程序不在登录后面。但是,如果请求是通过 WebClient 对象从另一个 .net 应用程序内部发出的,我只需要返回文件。
本质上,用户将在一个框中键入 ashx url,然后单击一个上传按钮,该按钮将安全地传输文件。
在 ashx 文件中如何确定请求是否来自“http://myapp.com/Upload.aspx”?
谢谢,
维吉尔
【问题讨论】:
标签:
c#
.net
asp.net
webclient
ashx
【解决方案1】:
在 ashx 文件中如何确定请求是否来自“http://myapp.com/Upload.aspx”?
如果您的处理程序不需要任何身份验证,您绝对不能这样做。就像你可以编写一个 WebClient 来使用这个处理程序一样,任何人都可以。并且处理程序完全无法知道请求来自哪里(除了 IP 地址)。因此,除非您使此 ASHX 处理程序需要身份验证,否则您唯一的机会是通过 IP 地址限制调用者。在处理程序中,您可以检查Request.UserHostAddress 是否对应于myapp.com 的IP 地址。