【发布时间】:2017-09-20 16:02:55
【问题描述】:
我的核心 2.0 应用设置了身份验证角色,并且我的控制器操作设置为
[Authorize(Roles="demo_user")]等
授权工作得很好,我的问题是如何锁定内容目录并仅通过控制器操作为它们提供服务?
阅读一些文档,看来我需要根据这篇文章提供文档: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
而且我相信我感兴趣的信息是这一段:
静态文件授权静态文件模块不提供 授权检查。它提供的任何文件,包括那些在 wwwroot 是公开的。根据授权提供文件: 将它们存储在 wwwroot 和任何可访问的目录之外 静态文件中间件并通过控制器操作为它们提供服务, 返回应用授权的 FileResult
有没有人在 wwwroot 之外存储目录并通过控制器操作提供服务的示例?
【问题讨论】:
-
您可以在this answer 中看到如何从控制器返回文件。然后由您决定如何将您的路由参数与您的文件相关联。
-
您可以为您的私有文件添加一个文件夹,并在 startup.cs (app.Use) 中向中间件添加条件并检查请求路径。如果路径包含私有文件夹,您可以重定向回应
标签: c# asp.net-mvc asp.net-core kestrel-http-server