如何隐藏文件链接的URL?

boi*_*222 4 html asp.net-mvc download hyperlink kendo-ui

我有一个C#,Kendo MVC,Razor网站.有一个Kendo网格,其中一个单元格有一个指向pdf文件的超链接,如下所示:

<a href="http://example.com/Files/File123.pdf" target="_blank">File 123</a>
Run Code Online (Sandbox Code Playgroud)

单击该链接可在新的浏览器选项卡中打开pdf.问题是,URL在浏览器中可见,可以更改为查看另一个文件.例如,用户可以用456替换123,并参见File456.pdf.我需要做两件事:

  1. 打开pdf时隐藏URL中的文件名.
  2. 当用户将鼠标悬停在超链接上时隐藏URL.

或者,我想点击链接(没有用户看到URL)并下载文件,但我认为是下载还是查看文件是特定于浏览器的.

我只是创建一个事件来将用户发送回控制器并处理打开或下载,但是Kendo网格使其变得复杂,并且通常需要立即更改.我将就如何操纵Kendo行打开pdf提出建议,但我希望有一种简单的方法可以更改只是隐藏用户的URL.

Dar*_*rov 17

问题是,URL在浏览器中可见,可以更改为查看另一个文件.

在我看来,在这种情况下,正确的方法是不假装隐藏用户的内容,而是知道您的用户是谁并在您的服务器上实现授权.这意味着如果用户A试图访问属于用户B的文件123,则他被拒绝.但如果他试图访问属于他的文件124,那么为什么要关心他在浏览器中修改了网址?在所有用户A访问他自己的文件之后.因此,不是直接提供静态文件,而是将这些文件放入不可直接访问的文件夹中,并通过将应用必要授权逻辑的控制器操作为其提供服务(用户尝试访问的文件实际属于在服用之前他?).

所以我在这种情况下给你的建议是根据他试图访问的资源在你的服务器上实现授权.


Hel*_*pha -2

如果你在 JS 中处理重定向,我认为它不会显示 url。例如

<p onclick="redirect('http://example.com/Files/File123.pdf')">Click here for PDF</p>

<script>
function redirect(link)
{
window.location = link;
}
</script>
Run Code Online (Sandbox Code Playgroud)