我有一个用ASP.NET Core编写的Web应用程序。通过检查会话是否包含一个从Web服务中获得的JSON对象来完成身份验证。(使用公共/私钥等)
在此JSON对象内部是一个与Web根文件夹下方的物理文件夹相对应的数字。
因此,当用户访问此文件夹中的文件时,应检查是否允许使用。实际上,此文件夹中有一个整个静态网站,因此必须检查到.html文件的每个请求。
。我想这可以使用一些自定义中间件完成,但我不确定从哪里开始。
有人知道如何完成此操作吗?
唯一真正的方法是通过授权的操作代理HTML文件。例如。您不想直接链接到foo.html
,而是要使用/proxy?file=foo.html
之类的东西,其中/proxy
将是检查用户是否实际授权查看foo.html
的操作。
文档中提出了类似的方法:
静态文件中间件不提供授权检查。它提供的任何文件,包括wwwroot下的文件,都可以公开访问。根据授权提供文件:
将它们存储在wwwroot之外,并且可以访问静态文件中间件的任何目录。
通过采用授权的操作方法为他们服务。返回filesult对象:
public IActionResult BannerImage() { var file = Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles", "images", "banner1.svg"); return PhysicalFile(file, "image/svg+xml"); }