【发布时间】:2021-09-01 02:02:10
【问题描述】:
我有带有侧边菜单的 Blazor 应用程序(Blazor 服务器)。当您单击这些菜单之一时,您将根据特定权限打开 PDF 文件(单击 href 时)。
我的问题:- 如果有人手动更改 URL 并将其替换为文件 URL,我如何获取此 URL 或防止未经授权的用户下载此文件??
【问题讨论】:
标签: asp.net-core blazor blazor-server-side blazor-webassembly
我有带有侧边菜单的 Blazor 应用程序(Blazor 服务器)。当您单击这些菜单之一时,您将根据特定权限打开 PDF 文件(单击 href 时)。
我的问题:- 如果有人手动更改 URL 并将其替换为文件 URL,我如何获取此 URL 或防止未经授权的用户下载此文件??
【问题讨论】:
标签: asp.net-core blazor blazor-server-side blazor-webassembly
最好创建一个控制器来下载文件,这样你就可以在下载开始之前控制它。
类似:
<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);
}
虽然控制器中此方法的链接可以提供给最终用户
【讨论】: