Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

I want to specify a non-default layout for authentication errors in Blazor

$
0
0

I want to specify the layout in the following error.

  • Route not found.
  • Not authorized.
  • Forbidden.

File details

App.razor

<CascadingAuthenticationState><Router AppAssembly="@typeof(App).Assembly"><Found Context="routeData"><AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)"><NotAuthorized><!-- TODO RZ9999 when Context removed --><AuthorizeView Context="authenticated"><Authorized><!-- TODO ErrorLayout --><Error403/></Authorized><NotAuthorized><!-- TODO ErrorLayout --><Error401/></NotAuthorized></AuthorizeView></NotAuthorized></AuthorizeRouteView><FocusOnNavigate RouteData="@routeData" Selector="h1"/></Found><NotFound><LayoutView Layout="@typeof(ErrorLayout)"><Error404/></LayoutView></NotFound></Router></CascadingAuthenticationState>

Error401.razor, Error403.razor, Error404.razor

<PageTitle>Error401</PageTitle><h3>Error401</h3>
<PageTitle>Error403</PageTitle><h3>Error403</h3>
<PageTitle>Error404</PageTitle><h3>Error404</h3>

What I have tried

According to the description in File details, ErrorLayout is used for Error404, but MainLayout is applied for Error401 and Error403.
I tried the following description, but it did not work.

Add @layout

Error401.razor as follows but MainLayoute was applied.Is @layout only valid for those with @page?

@layout ErrorLayout<PageTitle>Error401</PageTitle><h3>Error401</h3>

Add LayoutView

If Error401 and Error403 are children of LayoutView, they will be nested in the MainLayout and ErrorLayout layouts.

<AuthorizeView Context="authenticated"><Authorized><LayoutView Layout="@typeof(ErrorLayout)"><Error403/></LayoutView></Authorized><NotAuthorized><LayoutView Layout="@typeof(ErrorLayout)"><Error401/></LayoutView></NotAuthorized></AuthorizeView>

Questions

How do I write a Router to specify the layout in case of authorization and authentication errors?


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>