需要Iframe的父名称

时间:2013-02-21 02:20:24

标签: asp.net iframe parent

我一直在寻找几个小时但没有找到解决方案。希望你能提供帮助。

我想得到这个名字& Iframe中父页面的路径。这样做的原因是为了防止Iframe中的页面显示在其预定位置之外。如果我可以获取父页面的会话变量,那就更好了,因为我可以验证用户。

Iframe将在ASP.NET中编写,而父页面是PHP。

我找到了可能有效的Javascript代码,但我对javascript非常不熟悉,以及如何将返回值传递给ASP.NET中的代码。如果您的解决方案涉及javascript,我将需要从表单加载中调用它以获取值。

我尝试过这些功能,但它们没有显示我需要的功能。

Request.Url.AbsoluteUri.ToString
Request.ApplicationPath.ToString
Request.UrlReferrer.AbsolutePath.ToString

由于

1 个答案:

答案 0 :(得分:1)

我理解您正在寻找解决方案背后的代码并重定向,但后面的代码无法识别该页面是否正在调用其他内容。

你可以试试Request.ServerVariables["HTTP_REFERER"],但这可能会出错,甚至可能被某些用户禁用或更改。

使用javascript的一个简单的工作解决方案是检查iframe是否自己,如果它在你的母版页内。因此,此代码转到iframe内部的页面,如果单独看到,则会将用户重定向回母版页。

<script type="text/javascript" language="javascript">
    // this line is check if its inside an iframe.
    // if top==self then is not in iframe
    if(top == self)
    {
        alert("This page can not be viewed alone, please press ok to load the master page");
        top.location.replace("MasterPage.aspx");
    }
</script>