2011-08-29 44 views
0

在我的应用程序中,我打开我的应用程序页面在子窗口中。当我在IE中查看这些内容时,它没有显示任何URL,但是当我在Firefox和Chrome中查看它时,我显示了URL。如何防止父窗口中的URL副本

我的问题是我可以隐藏地址栏在儿童窗口的Firefox和铬。

我想阻止用户在父窗口中复制粘贴URL并访问页面。

我米使用形式验证

<authentication mode="Forms"> 
     <forms loginUrl="~/login.aspx" protection="All" timeout="3600" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseUri" enableCrossAppRedirects="false"/> 
    </authentication> 

我已经使用授权尝试= “?” 我曾尝试使用JavaScript来检查这是父窗口还是子窗口。

<script type="text/javascript"> 
     if (typeof window.opener != "undefined") 
      alert("I was opened from within " + window.opener.location.href); 
     else if (window != top) 
      alert("You came here from " + document.referrer); 
</script> 

但第二部分不起作用。 请帮助我,让我知道我做错了什么

回答

1

而不是阻止用户复制粘贴url你可以做什么是你可以把一些脚本,只有当一个请求时才能运行,否则它会做你想要的动作。

string referer = Request.ServerVariables["HTTP_REFERER"]; 
     if (string.IsNullOrEmpty(referer)) 
     { 
      Response.Redirect("../Index.htm"); 
     } 

使用运行页面只有当请求从其他网页到来会重定向到所需的页面

+0

我该怎么办。 – Apus

+0

检查编辑后 –

0

否如果您打开一个新窗口,则无法隐藏网址。 如果页面来自同一个域,则可以将结果AJAX转换为当前页面上的弹出式DIV。

这就是说 - 任何具有一点网络知识的人都可以找到URL。

例如在Chrome中,我甚至不需要安装任何东西,只需点击“检查元素”命中NET选项卡,并看到它从任何地方加载的URL。

+0

我不希望有人复制粘贴URL。如果他这样做,我希望他重定向到用户定义页面 这是否有意义 – Apus

+0

这很有道理。但你不能这样做。 –

+0

让我举一个例子,可以帮助你更准确地定义我的问题 https://www.obconline.co.in/只需选中复选框并点击提交,然后将打开一个新窗口尝试复制粘贴URL中的URL新窗户。 和我已经做的其他事情是禁用右键点击 – Apus

0

如果我明白你想要的是正确的,唯一的方法是在使用登录之后(因为你有一个登录表单),在会话状态中保存一个布尔值,表明用户已被认证,然后在页面你想在page_load事件中隐藏它的url,检查这个布尔值是否为true,这样你就可以限制对这个url的访问,而不需要隐藏url。

+0

请更清楚。我无法理解你的答案。 –

+0

朋友可以更简短 – Apus