如何限制可以调用我的页面/ Web服务的域

时间:2009-09-02 12:09:42

标签: c# asp.net iis

我有一个我想在几个域上使用的网络服务女巫。但是,我想限制可以访问我的Web服务的站点(域)。

例如,我希望网站www.Site-A.com上的网页发出请求并执行www.Site-B.com请求拒绝。

有没有办法用ASP.NET / IIS做到这一点?

2 个答案:

答案 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标头进行身份验证,因此任何人都可以使用相当简单的工具来欺骗它。