检测我的页面是否在代码后面的框架中

时间:2009-10-02 07:38:09

标签: c# asp.net iframe

有没有办法检测我的页面是否在我的C#ASP.NET代码背后的框架内?

我知道有很多方法可以使用javascript打破帧或检测帧,但我对此情况并不感兴趣。我想知道在页面首次访问浏览器之前是否有办法检测帧服务器端,即如果请求中有某种指示。

2 个答案:

答案 0 :(得分:4)

不,请求标题中没有任何内容发送,表明页面在一个框架中 - 这就是你真正需要继续的。

您可以做的最好的事情是查看Referrer属性,如果它来自已知的框架网站(例如images.google.com等),则将其视为可疑。

答案 1 :(得分:4)

这个答案有点晚了,但我在这里......

如果你想在服务器端知道,你可以做的最好的事情是使用JavaScript来重定向你的页面,如果它在一个框架内。例如,使用此JavaScript重定向:

<script type="text/javascript">
if(top.location.href!= window.location.href){
    window.parent.location.href = "http://127.0.0.1/frame.aspx?frame=yes";
}
</script>

然后在frame.aspx中你会知道上一页是在一个框架中。如果需要,可以向查询字符串添加更多信息。