阻止从 URL 下载文件

Prevent download files from URL

我有带侧边菜单的 Blazor 应用程序(Blazor 服务器)。当您单击这些菜单之一时,您将根据特定权限打开 PDF 文件(当单击 href 时)。

我的问题:- 如果有人手动更改 URL 并将其替换为文件 URL,我该如何获取此 URL 或防止未经授权的用户下载此文件怎么办? ??

最好创建一个控制器来下载文件,这样你就可以在下载开始之前控制它。

类似于:

<a href="/files/download?name=myfile.pdf">My File</a>

在这种情况下,FilesController 将有一个 Download 方法,您可以在该方法中检查授权过程。

public FileResult DownloadFile()
{
    // logic to allow/disallow users from downloading
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"pathtofile"); // or any other source
    string fileName = "nameWithExtension";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

虽然link控制器中的这个方法可以呈现给最终用户