.netcore 静态文件的访问权限控制

一、服务器端
1、使用.netcore 创建了webAPI,开启了静态文件访问UseStaticFiles();
2、图片文件的放置到静态文件夹中,如pic1、pic2...,可以直接返回图片的Url通过浏览器查看
3、现在即使是游客身份,只要知道了这个url,其实就相当于获得了整个系统的查看权限了,
4、需求是对静态文件访问权限进行限制,只有授权用户才能访问url
5、怎么解决,请求帮助

利用中间件:https://www.cnblogs.com/zhaocha/p/12195245.html
也可以再返回url的时候提前利用action做鉴权。
文件名用guid代替,这样获取到了一个也不容易猜出其他的

要对静态文件访问权限进行限制,以确保只有授权用户能够访问这些图片的 URL,你可以采取以下步骤:

身份验证和授权:首先,确保你的 ASP.NET Core Web API 具备身份验证和授权机制。这可以通过使用 ASP.NET Core Identity、JWT(JSON Web Tokens)、OAuth 2.0 或其他认证方式来实现。这将为你提供用户登录和授权的框架。

保护静态文件:在 Startup.cs 文件的 Configure 方法中,使用中间件来保护静态文件。你可以使用 app.UseMiddleware 或 app.Use 方法来执行此操作。例如:

app.Use(async (context, next) =>
{
    // 在这里进行用户身份验证和授权检查
    if (!context.User.Identity.IsAuthenticated)
    {
        context.Response.StatusCode = 401; // 未授权
        await context.Response.WriteAsync("Unauthorized");
    }
    else
    {
        await next();
    }
});

// 添加静态文件中间件
app.UseStaticFiles();

上述中间件会检查用户的身份验证状态。如果用户未经授权,它将返回 401 未授权状态码。否则,它将允许请求通过并继续访问静态文件。