Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 服务器端检测页面显示在IFrame中_Asp.net_Iframe - Fatal编程技术网

Asp.net 服务器端检测页面显示在IFrame中

Asp.net 服务器端检测页面显示在IFrame中,asp.net,iframe,Asp.net,Iframe,是否可以确定服务器端页面是否已加载到IFrame中 当我的应用程序中出现某些错误时,用户将被重定向到Default.aspx,并显示一条错误消息。该错误消息的文本在会话中由异常处理代码设置。显示错误消息后,该消息将从会话中清除 但是,我的应用程序的一部分必须使用IFrame(它正在执行3D安全卡支付检查,这要求使用IFrame,以显示卡提供商的身份验证UI)。如果在此过程中发生错误,我的重定向将在IFrame中生效。我正在使用JavaScript检测并正确地重新加载Default.aspx,但这

是否可以确定服务器端页面是否已加载到
IFrame

当我的应用程序中出现某些错误时,用户将被重定向到
Default.aspx
,并显示一条错误消息。该错误消息的文本在会话中由异常处理代码设置。显示错误消息后,该消息将从会话中清除


但是,我的应用程序的一部分必须使用
IFrame
(它正在执行3D安全卡支付检查,这要求使用
IFrame
,以显示卡提供商的身份验证UI)。如果在此过程中发生错误,我的重定向将在
IFrame
中生效。我正在使用JavaScript检测并正确地重新加载
Default.aspx
,但这意味着我会连续快速地加载两次
Page\u
,并且错误消息只在第一次加载时显示(然后清除)。

我认为您无法检测到具有某种Page.IsInIFrame()功能的情况,但是你可以考虑对那些在iFrAME中加载的页面有不同的基类,而那些不知道错误的是来自IFRAME页面的请求,这在某种程度上是有帮助的。

< P>服务器端是没有办法的。唯一的方法是通过javascript。在执行重定向时,是否可以通过查询字符串传递错误消息或代码?

使用带window.location的Javascript进行重定向是否有效?强制整页重定向?

您可以在客户端执行此操作:


我发现的解决方法是在iframe内部打开的url的查询字符串中放入一些标识符。

这是不可能的,因为客户端可以在禁用javascript的情况下打开iframe

只需检查当前页面的url即可。。 如果与IFrame页面相同,则重定向到Default.aspx或其他任何页面

Dim urlpath1 As String = HttpContext.Current.Request.Url.AbsoluteUri
If Right(urlpath1, 13) = "WebForm1.aspx" Then
       Response.Redirect("~/")
   Else
       Response.Write("It's OK!")
   End If

Mozilla开发者网络。事实上,我想我只是用这个打开了一整罐蠕虫,在我知道发生了什么之前,我不应该在这里添加我的信息,对不起。(请参阅)请注意,您需要使用Request.urlReferer,而不是Request.Url作为Request.Url。Url将返回iframe Url。@RonenFestinger,当您单击iframe中的链接时,它将不起作用,但是,referer和Url将是相同的。