Http 如何强制页面仅在IFrame中加载?

Http 如何强制页面仅在IFrame中加载?,http,iframe,webpage,Http,Iframe,Webpage,我有一组asp.net页面,我希望这些页面只有在从IFrame加载时才可以访问或加载。如果试图通过浏览器地址栏直接访问页面,则根本不应显示页面或向用户显示消息 我尝试过使用cookie和session,但它们并没有那么有效,因为一旦创建了cookie/会话,您就可以绕过IFrame直接从浏览器访问页面 我的开发平台是asp.net 2.0+,vs2008,C#2.0+这是将脚本放在head标记中为数不多的几个例子之一 <html> <head> <title

我有一组asp.net页面,我希望这些页面只有在从IFrame加载时才可以访问或加载。如果试图通过浏览器地址栏直接访问页面,则根本不应显示页面或向用户显示消息

我尝试过使用cookie和session,但它们并没有那么有效,因为一旦创建了cookie/会话,您就可以绕过IFrame直接从浏览器访问页面


我的开发平台是asp.net 2.0+,vs2008,C#2.0+

这是将脚本放在head标记中为数不多的几个例子之一

<html>
<head>
    <title>sandBox</title>
    <script type="text/javascript">
        if (frameElement == null) {
            //change location or close
            window.location = "http://stackoverflow.com";
            // or window.close();
        }
    </script>
</head>
<body>
content goes here
</body>
</html>

沙箱
if(frameElement==null){
//更改位置或关闭
window.location=”http://stackoverflow.com";
//或窗口。关闭();
}
内容在这里
在头部标签内尝试以下操作:


if(window.self!==window.top)//在iframe中
else window.location=”http://stackoverflow.com/“//外面

在页面中使用此JS检查它是否在iframe中

if(window == window.top) {
    //page is not in an iframe
}

我必须将if语句放在body onLoad处理程序中调用的函数中。否则,这个解决方案就像一个符咒
if(window == window.top) {
    //page is not in an iframe
}