this. __curious_geek
this. __curious_geek

Reputation: 43207

How to Force the page to be loaded only within an IFrame?

I have a set of asp.net pages which I wish they should only be accessible or loaded when they are loaded from an IFrame. If an attempt is made to access the pages directly via browser address bar then the page should not be displayed at all or display the message to the user.

I tried using cookies and sesions, but they are not that effective becuase once the cookie/session is created you can access the pages directly from browser, bypassing IFrame.

My development platform is asp.net 2.0+, vs2008, C# 2.0+

Upvotes: 3

Views: 5140

Answers (3)

Bibek Oli
Bibek Oli

Reputation: 876

Use this JS in the page to check whether it is in iframe or not.

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

Upvotes: 1

Thiago Santos
Thiago Santos

Reputation: 131

Try this inside your head tag:

<script>
if(window.self !== window.top); //inside an iframe
else window.location = "http://stackoverflow.com/" // Outside
</script>

Upvotes: 1

Your Friend Ken
Your Friend Ken

Reputation: 8872

This is an example of one of the few times it is better to put the script in the head tag.

<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>

Upvotes: 6

Related Questions