繁体   English   中英

如何在Web API中保护静态内容

[英]How to protect static content in Web API

考虑这种情况:我有一个用Web API 2.x构建的REST API,身份验证由ASP.NET Identity管理。 用户可以将附件作为记录的一部分上载,这些附件都存储在磁盘上根目录下名为Attachments的目录中。

现在,用户可以从他们的记录中生成PDF。 PDF包含指向附件文件的链接,当您单击它们时,将很高兴为您提供静态文件。 例如: attachments/2018/01/somefile.jpeg

我需要做的是将这些媒体文件提供给授权用户。 仅基本身份验证是不够的,我不能仅说为所有已登录用户提供媒体文件。 我需要查询数据库,检查用户分配和/或其他安全措施,并确定是否应提供文件。

我一直在寻找可行的解决方案。 如何通过Web API处理此类路由,并仅向授权用户提供静态内容? 值得一提的是,我在项目中没有使用ASP.NET MVC。 它只是带有TypeScript编写的Angular 1.6应用程序的Web API2.x。

以下方法应该为您工作。

步骤1-拒绝web.config附件文件夹对所有用户的直接访问权限,如下所示。

<location path="attachments"> 
<system.web>
<authorization> 
</authorization>
</system.web>
</location>

步骤2:创建一个通用文件下载API,这应该是您从服务器下载任何文件的单点。

您所有受保护的链接应类似于/Download/somefilename

通过针对登录用户检查请求文件,可以在Download API中实现数据级安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM