需求:项目中的有些静态文件,比如图片,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();