阻止从 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控制器中的这个方法可以呈现给最终用户
我有带侧边菜单的 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控制器中的这个方法可以呈现给最终用户