【问题标题】:How to set up file download that requires authentication in ASP.NET?如何在 ASP.NET 中设置需要身份验证的文件下载?
【发布时间】:2021-03-27 14:01:36
【问题描述】:

我是否必须为令牌身份验证创建 API,或者是否有其他方法可以创建某种登录方式以允许我下载 .csv 文件?我需要一个 200 成功认证的状态码,否则请求应该返回一个 401 状态码并且文件不应该被下载。有人对我如何实现这一目标有任何建议吗?理想情况下,它应该尽可能简单地实现。

【问题讨论】:

  • 您已经有网站了吗?您尝试过什么来实现这一目标?
  • 我在 IIS 上有一个网站,我只需要一个关于从哪里开始的建议。
  • 非常宽泛的问题,在这里只提供一个答案。您打算使用什么进行身份验证?身份、SSO(Google/Facebook 等)还是其他?
  • 无论您选择何种身份验证(基于 Windows/令牌/其他),都有相应的方式来保护下载。因此,在您询问“如何”之前,必须先做出决定,否则这个问题不够具体,不适合 Stack Overflow 格式。这不是一个提供广泛教程/讨论的网站。

标签: asp.net vb.net iis


【解决方案1】:

对此我有两个建议。

  • 可以将所有下载资源放在同一个文件夹中,文件夹 无论它是否在应用程序内部,都会有一个指向它的 url 或作为一个独立的应用程序。在左侧的结构树中 IISManager 的一侧。只要您选择文件夹并启用 身份验证并禁用匿名身份验证 身份验证模块,任何访问该文件夹的请求都会被 需要验证身份。

  • 无需在 IIS 上进行设置,您就可以使用 Web Api 的过滤器。 Authentication filters 让您为 单个控制器或操作。

    [Authorize] // Require authenticated requests.
    public class HomeController : ApiController
    {
         public IHttpActionResult Get() { . . . }
    
         [IdentityBasicAuthentication] // Enable Basic authentication for this action.
         public IHttpActionResult Post() { . . . }
    }
    

【讨论】:

    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 2015-04-11
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 2014-03-10
    相关资源
    最近更新 更多