asp.net-mvc - 如何限制对asp.net MVC中视频文件的直接访问
问题描述
在我的项目中,我有一个上传文件夹,用户在其中上传视频文件,然后通过 HTML5 视频播放器从该文件夹中查看它。但是如果一个真实的用户浏览 www.mysite.com/Upload/videofilename.mp4 那么视频也会被显示。我想限制对视频文件夹的直接访问。有什么办法吗?
解决方案
您必须在 Web 配置中为Upload文件夹设置hiddenSegments 。您也可以通过 IIS 进行设置。YourSite > 请求过滤 > 隐藏段。设置隐藏段后,任何人都无法使用 url 访问文件。
网络配置
<security>
<requestFiltering>
<hiddenSegments>
<add segment="Upload"/>
</hiddenSegments>
</requestFiltering>
</security>
查看页面
<video width="320" height="240" controls>
<source src="@Url.Action("GetMedia","Home")" type="video/mp4" />
</video>
代码
[Authorize]
public ActionResult GetMedia()
{
string fn = Server.MapPath("~/Upload/1.mp4");
var memoryStream = new MemoryStream(System.IO.File.ReadAllBytes(fn));
return new FileStreamResult(memoryStream, MimeMapping.GetMimeMapping(System.IO.Path.GetFileName(fn)));
}
推荐阅读
- ios - 在 TableView 单元格中处理从 Firebase 检索数据的更好方法
- python - 使用 Python 导入文件 - 如果文件不存在,如何跳过?
- h2 - 如何在 H2 数据库中执行 N 次查询?
- javascript - 如何通过单击更改按钮的颜色
- r - 如何将向量写入数据表同一行的几列?
- python - 在python中创建曲率动画
- angular - 用于 Anguar 7 的 MSAL 库配置以与 tenant.b2clogin.com 一起使用
- shell - 将小时数添加到文本文件中的所有时间戳
- python - 具有来自两个非重叠列的值的熊猫数据透视表
- java - 从 github 克隆现有 Android 项目时出错