【ASP.NET Core Web】特定の静的ファイルに認証無しでアクセスできるようにする
2024-3-19 | ASP.NET Core Web
.NET 8のASP.NET Core Webで特定の静的ファイルに認証無しでアクセスできるようにしたい!
概要
今回の記事では、.NET 8のASP.NET Core Webで特定の静的ファイルに認証無しでアクセスできるようにする手順を掲載する。
仕様書
環境
- .NET 8.0
手順書
UseStaticFiles()
を使わず静的ファイルへのアクセスを許可してない場合、または、UseAuthentication()
の後にUseStaticFiles()
を使って特定のディレクトリの静的ファイルのみへのアクセスを許可してる場合に特定の静的ファイルにアクセスできるように設定したい。
下記はwwwroot/favicon.ico
に認証無しでアクセスできるように設定する例。
namespace StaticFileSample
{
public class Program
{
public static void Main(string[] args)
{
...
var app = builder.Build();
...
app.MapGet("/favicon.ico", async context =>
{
var filePath = Path.Combine(app.Environment.WebRootPath, "favicon.ico");
if (File.Exists(filePath))
{
context.Response.ContentType = "image/x-icon";
await context.Response.SendFileAsync(filePath);
}
else
{
context.Response.StatusCode = 404;
}
}).AllowAnonymous();
...
}
}
}
まとめ(感想文)
アクセス権限って難しいと思う今日この頃。