首页 > 解决方案 > 如何在 ASP.NET 中设置需要身份验证的文件下载?

问题描述

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

标签: asp.netvb.netiis

解决方案


我对此有两个建议。

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

在此处输入图像描述

  • 无需在 IIS 上设置,您可以使用 Web Api 的过滤器。 身份验证过滤器允许您为各个控制器或操作设置身份验证方案。

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

推荐阅读