【问题标题】:Prevent download files from URL防止从 URL 下载文件
【发布时间】:2021-09-01 02:02:10
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-core blazor blazor-server-side blazor-webassembly


    【解决方案1】:

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

    类似:

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

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

    【讨论】:

      【解决方案2】:
      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);
      }
      

      虽然控制器中此方法的链接可以提供给最终用户

      【讨论】:

      • 嗨 Sarang,由于我的文件位于客户端项目中(而不是服务器端),我已经在客户端项目中创建了控制器,所以,我如何调用并将参数传递给这个控制器在 Blazor 中?你能给我举个例子吗
      • 您需要在服务器和客户端之间建立链接。要使用这种技术,服务器必须是文件的servant
      • 大家好,有没有办法打开返回文件结果而不是下载它?
      • 您可以验证用户,然后出示链接以打开或下载
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2018-05-02
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多