有个文件夹
~/GlobalFiles/PeoplePhoto/
有照片。如果我想获取照片,那么我会在地址栏中写入。
http://localhost:58370/GlobalFiles/PeoplePhoto/14.jpg
我得到了我想要的。
每个登录的人都有一个角色,该角色确定用户有权使用什么,不能使用什么。因此,任何人都可以通过绝对路径获取照片,即使未注册。如何解决?在用户转到此目录以查看特定照片之前,如何检查角色。
有个文件夹
~/GlobalFiles/PeoplePhoto/
有照片。如果我想获取照片,那么我会在地址栏中写入。
http://localhost:58370/GlobalFiles/PeoplePhoto/14.jpg
我得到了我想要的。
每个登录的人都有一个角色,该角色确定用户有权使用什么,不能使用什么。因此,任何人都可以通过绝对路径获取照片,即使未注册。如何解决?在用户转到此目录以查看特定照片之前,如何检查角色。
静态内容的分发可以通过控制器实现,将所有必要的访问权限检查转移给它(通过控制器/方法的属性或在函数体本身中)。
为了阻止通过图像链接直接访问,请将 web.config 文件放在 GlobalFiles 目录中:
禁止访问图像的另一种选择可以是更改保存文件的逻辑:例如,保存文件时不明确指定其扩展名,和/或保存文件的名称,例如 GUID(保存 id <- > 数据库中的 Guid 映射)。
简单地删除默认扩展名(在您的情况下为 .jpg)可能是最简单的选择,因为默认情况下会解析 jpg 文件,
System.Web.StaticFileHandler'ом并且可以直接从链接获得而无需任何过滤。删除扩展名(或将其更改为不受 StaticFileHandler 处理的扩展名 - 例如“.hidden”)后,如果不修改 web.config,将无法通过直接链接访问文件。图片的链接将如下所示: