首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp net core 2.0中提供带身份验证的静态文件夹

问在asp net core 2.0中提供带身份验证的静态文件夹
EN

Stack Overflow用户
提问于 2019-06-11 13:59:38
回答 1查看 437关注 0票数 0

我使用的是带有MVC的asp net core 2.0.5,我想在wwwroot之外提供一个静态文件夹。

我的输入文件如下所示。

代码语言:javascript
复制
wwwroot
staticfolder
    10
        index.html
        image1.png
        image2.png
        sub-folder
            image3.jpg

index.html是由其他程序生成的。所有图像都在index.html中使用。

我们希望在检查身份验证后进入服务器,即用户可以通过路径api/flight/10/index.html查看index.html。但我需要检查用户访问资源flight 10的权限。

我知道Physicalfile可以用来在wwwroot之外提供静态文件(例如*.png),还可以配置app.UseStaticFiles来为startup.cs中的文件夹和文件提供服务。

一些伪代码作为最小的例子。

代码语言:javascript
复制
[Route("api/flight/{flight}/index.html")]
[HttpGet]
public IActionResult GetImageThumbnail(
    [FromRoute] int flight)
{
    // Check permission
    List<Flight> data = _context
        .Flight(id: flight)
        .ToList();

    if (data.Count() == 0)
    {
        return NotFound("No permission.");
    }

    // data[0].BaseFolder is a folder outside wwwroot
    string filename = data[0].BaseFolder + "/index.html";
    // Return the content for index.html
    ...
}

所以我的问题是,我应该如何使用上面类似的方法为一个混合了html和图像的文件夹提供服务。

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 23:34:09

我找到了一个简单的解决方案来实现我的目标。在这里发帖,以防其他人也有同样的问题。

关键是使用{*file}设置路由,它将匹配末尾的任何字符串。

代码语言:javascript
复制
[Route("api/flight/{flight}/{*file}")]
[HttpGet]
public async Task<IActionResult> GetImageThumbnail([FromRoute]int flight, 
    [FromRoute] string file)
{

    // Check permission
    List<Flight> data = _context
    .Flight(id: flight)
    .ToList();

    if (data.Count() == 0)
    {
    return NotFound("No permission.");
    }
    string filename = Path.Combine(data[0].BaseFolder, file);
    var provider = new Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider();

    string minetype = "";
    provider.TryGetContentType(filename, out minetype);
    return PhysicalFile(filename, minetype);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56537374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档