簡體   English   中英

使用 asp.net core mvc 中的身份驗證保護 wwwroot 中的某些文件夾

[英]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");
}

參考:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1#static-file-authorization

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM