博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net core 静态文件授权访问

Posted on 2024-07-10 19:29  火冰·瓶  阅读(25)  评论(0编辑  收藏  举报

需求:项目中的有些静态文件,比如图片,JS等不想被爬虫直接爬到,需要登陆后才能访问

微软官方介绍页面

ASP.NET Core 中的静态文件 | Microsoft Learn

 

根据授权提供静态文件:

  • 将它们存储在 wwwroot 之外。
  • 调用 UseAuthorization 之后调用 UseStaticFiles,以指定路径。
  • 设置回退授权策略。
//设置回退授权策略
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseMigrationsEndPoint();
}
else
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

//新增静态文件目录,需要新建一个MyStaticFiles文件夹,然后通过https://localhost:50000/StaticFiles访问目录下的静态文件
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
           Path.Combine(builder.Environment.ContentRootPath, "MyStaticFiles")),
    RequestPath = "/StaticFiles"
});

app.MapRazorPages();

app.Run();