@using HopFrame.Core.Config @using HopFrame.Core.Services @using HopFrame.Web.Models @using Microsoft.Extensions.DependencyInjection @inherits LayoutComponentBase
@Body
Documentation and source code
@inject IHopFrameAuthHandler Handler @inject HopFrameConfig Config @inject NavigationManager Navigator @code { internal static readonly List CustomViews = new(); protected override async Task OnInitializedAsync() { var authorized = await Handler.IsAuthenticatedAsync(Config.BasePolicy); var currentUri = "/" + Navigator.ToBaseRelativePath(Navigator.Uri); if (authorized) { foreach (var view in CustomViews.Where(view => !string.IsNullOrWhiteSpace(view.Policy))) { switch (view.LinkMatch) { case NavLinkMatch.All when currentUri != view.Url: case NavLinkMatch.Prefix when !currentUri.StartsWith(view.Url): continue; } authorized = await Handler.IsAuthenticatedAsync(view.Policy); break; } } if (!authorized) { Navigator.NavigateTo((Config.LoginPageRewrite ?? "/login") + "?redirect=" + currentUri, true); } } }