【问题标题】:I want to hide URL in the addressbar我想在地址栏中隐藏 URL
【发布时间】:2013-01-20 13:34:36
【问题描述】:

我想显示在假设(http://myservre/reports/myrepoft.pdf) 的网络路径中可用的报告(pdf)。目前,它正在像这样通过 IFrame 显示。

strReportPDFFile = "`http://myservre/reports/myrepoft.pdf`"

<IFRAME frameborder="1" onload="onchangestate()" src="" id="ifrmShowReport" frameborder="0" height="100%" width="100%" marginwidth="0"    align="top" style="overflow: none;overflow-x: auto;display:none"></IFRAME>

document.getElementById("formContainer").style.display = "block";
document.getElementById("ifrmShowReport").style.display = "block";
document.getElementById("ifrmShowReport").src = strReportPDFFile;

网址显示在地址栏中,我想隐藏网址。可能吗 ?如果没有,请建议一些更好的选择。

【问题讨论】:

  • 我猜这取决于为什么你要隐藏它?
  • 有什么用?所以没人能偷吗?即使您将其隐藏在 iframe 中,也很容易发现。浏览器必须有 一些 URL,以便它可以获取文档
  • 我的客户说这是潜在的线程。所以我们想隐藏它
  • 告诉你的客户他是个白痴。 :P 说真的,这样做的唯一原因可能是因为它看起来会更好?不知道。
  • 这不是威胁。他们可能只是想限制下载次数。例如,您可以创建一个只能下载 X 次的临时文件名,并且获取生成文件的唯一方法是登录。

标签: c# javascript html iframe


【解决方案1】:

我认为您提出问题的主要原因(隐藏 PDF 文件的 URL)是出于安全问题。 例如。您的服务器上有一些 PDF 文件必须发送给目标受众,而不是每个人都可以阅读。

我给你一些关于如何实现这个意图的基本提示:

  • 将 PDF 文件放在网络服务器的公共根目录之外
  • 实现一个服务器端脚本:
    • 检查用户是否已通过身份验证并有权获取文件
    • 获取一些参数以检索正确的文件
    • 使用此服务器端脚本内容处置提供文件(作为附件,发送正确的 Mime-Type 和“虚构”URL)

既然你把 C# 放在你的问题标签中,我就在 使用 C# 向标头添加内容处置: Response.AddHeader("content-disposition", @"attachment;filename=""MyFile.pdf""");

然后您可以在任何您希望的地方显示您的 pdf:空白页、iframe ... 可以肯定的是,您不会找到仅使用 HTML/Javascript 的解决方案,而不是对于中级互联网用户而言容易避免的解决方案。

【讨论】:

猜你喜欢
  • 2014-01-09
  • 2013-08-21
  • 1970-01-01
  • 2013-12-30
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
相关资源
最近更新 更多