[英]How to render index.html file that is in wwwroot folder using controller or view in ASP.NET Core MVC
[英]Protect certain folders in wwwroot with authetication in asp.net core mvc
我在 wwwroot 中放置了幾個包含靜態內容的文件夾。 對於某些文件夾,我需要對用戶進行身份驗證才能查看這些文件夾。
為此,我在 Startup 中添加了如下代碼。
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = ctx=>
{
if(!ctx.Context.User.Identity.IsAuthenticated && ctx.Context.Request.Path.Value("admin/manuals"))
{
ctx.Context.Response.Redirect("/");
}
}
}
雖然我通過了身份驗證,但我總是得到 isAuthenticated 錯誤。 為什么我也收到這個..
還有什么是處理這種情況的更好方法。
以下是兩種基於授權提供文件的方法:
第一種方式就像您配置靜態文件中間件所做的那樣。
雖然我通過了身份驗證,但我總是得到 isAuthenticated 錯誤。
請務必在UseStaticFiles
之后調用UseAuthorization
:
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseStaticFiles();
//...
第二種方法是通過應用授權的操作方法為它們提供服務,並返回一個 FileResult 對象:
[Authorize]
public IActionResult BannerImage()
{
var filePath = Path.Combine(
_env.ContentRootPath, "MyStaticFiles", "images", "red-rose.jpg");
return PhysicalFile(filePath, "image/jpeg");
}
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.