我有一个我想在几个域上使用的网络服务女巫。但是,我想限制可以访问我的Web服务的站点(域)。
例如,我希望网站www.Site-A.com上的网页发出请求并执行www.Site-B.com请求拒绝。
有没有办法用ASP.NET / IIS做到这一点?
答案 0 :(得分:1)
您可以检查远程用户的IP地址并采取相应措施。您也可以使用请求的Referer
标头,但这可能是欺骗性的。
答案 1 :(得分:1)
如果我正确理解您的问题,您的网络内容可能会被域外的其他网页引用。这些页面将被加载到浏览器中,然后来自这些页面中的引用的请求将尝试从您的站点获取内容。这是否描述了您的情景?
如果是这样,那么您必须实现此目的的唯一机会是要求使用referer
标头传递请求(这是正常的,但某些浏览器允许用户禁止它)。然后,您可以检查代码中referer
标头的内容,以测试您是否要继续请求。
您可以使用以下代码检查referer
: -
var referer = new Uri(Request.ServerVariables("HTTP_REFERER"));
if (referer.Host.ToLower() == "www.site-a.com")
//Allow access
<强>买者强>
此技术只能非正式使用,无法对referer
标头进行身份验证,因此任何人都可以使用相当简单的工具来欺骗它。