Apply Authorization to All Pages in Blazor

Program.cs

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
builder.Services.ConfigureApplicationCookie(options =>
{
options.ExpireTimeSpan=TimeSpan.FromDays(14);
options.SlidingExpiration = true;
options.Cookie.Name = "BI";
options.Cookie.HttpOnly = true;
options.LoginPath = "/Login";
options.LogoutPath="/Logout";
});
builder.Services.AddAuthorization(options => { options.FallbackPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); }); builder.Services.ConfigureApplicationCookie(options => { options.ExpireTimeSpan=TimeSpan.FromDays(14); options.SlidingExpiration = true; options.Cookie.Name = "BI"; options.Cookie.HttpOnly = true; options.LoginPath = "/Login"; options.LogoutPath="/Logout"; });
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
});

builder.Services.ConfigureApplicationCookie(options =>
{
    options.ExpireTimeSpan=TimeSpan.FromDays(14);
    options.SlidingExpiration = true;
    options.Cookie.Name = "BI";
    options.Cookie.HttpOnly = true;
    options.LoginPath = "/Login";
    options.LogoutPath="/Logout";
});

To apply authorization to all pages in Blazor, you have to add:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
@attribute [Microsoft.AspNetCore.Authorization.Authorize]

…to your _Imports.razor file.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous]
@attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous]
@attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous]

…on pages that don’t require authorization.

References
https://stackoverflow.com/questions/60840986/blazor-redirect-to-login-if-user-is-not-authenticated
https://stackoverflow.com/questions/71434131/blazor-allow-anonymous-for-razor-page
https://stackoverflow.com/questions/50633896/asp-net-core-identity-change-login-url
https://learn.microsoft.com/en-us/aspnet/core/security/authorization/secure-data?view=aspnetcore-7.0