簡體   English   中英

Blazor 服務器端 AllowAnonymousToFolder

[英]Blazor Server Side AllowAnonymousToFolder

我添加了 Azure AD 身份驗證,以便對應用程序的所有請求都必須登錄。 但我想將其分開,因為我的頁面有一個“公共”和“私人”文件夾。

我發現這個https://docs.microsoft.com/en-us/aspnet/core/security/authorization/razor-pages-authorization?view=aspnetcore-5.0這是我需要的,但是一旦我將 go 轉到一個頁面公用文件夾,我仍然被提示登錄。

預期結果:/Pages/Public 文件夾中的所有頁面都不會提示登錄。

結果:當導航到 /Pages/Public 文件夾中的頁面時,我會提示登錄請求。

我在服務器端 Blazor 和 Net Core 相對較新,所以我很可能誤解了某些東西,或者 Blazor 不提供此功能。 如果是這樣,那么我可能會提示要查看的內容嗎?

services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
      Configuration.Bind("AzureAD", options);
      options.Events ??= new OpenIdConnectEvents();
      options.Events.OnTokenValidated += OnTokenValidatedFunc;
});
services.AddRazorPages(options =>
{
     //No error here but no effect either
     options.Conventions.AllowAnonymousToFolder("/Pages/Public");
}).AddMvcOptions(options =>
{
     var policy = new AuthorizationPolicyBuilder()
                      .RequireAuthenticatedUser()
                      .Build();
     options.Filters.Add(new AuthorizeFilter(policy));
                
}).AddMicrosoftIdentityUI();

在包含所有需要身份驗證的頁面的文件夾中的新_Imports.razor中使用@attribute [Authorize(Policy = "Whatever")] 這會將 Authorize 屬性添加到該文件夾及以下文件夾中的所有頁面。 您將不得不刪除您的全局身份驗證。 雖然要求。

所以我最終將項目分成兩個項目,一個部分是安全的,另一個是公開的,因為我沒有找到一種方法來保證整個項目的安全並且只匿名某些頁面。

暫無
暫無

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

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