티스토리 뷰
로그인이 안되어 있을 시 로그인 페이지를 제외한 모든 페이지의 접근을 로그인 페이지로 redirect를 시켜버리는 방법이다.
_Import.razor 에 아래와 같은 속성을 추가한다.
보통 해당 속성은 인증이 필요한 페이지에 추가하지만, 이러면 모든 페이지 접근 시 인증 권한이 있는지 체크하게 된다.
@attribute [Authorize]
로그인 페이지에는 아래와 같이 권한을 체크하지 않는 속성을 추가한다.
@attribute [AllowAnonymous]
마지막으로, App.razor에 로그인이 안되어 있을 시 로그인 페이지로 redirect 시키는 처리를 한다.
CascadingAuthenticationState : 로그인 상태를 모든 위치에서 공유함
AuthorizeRouteView : 기존 RouteView에 인증확인이 추가됨
NotAuthorized : 미인증 시 처리될 구문
@inject NavigationManager NavigationManager
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="@true">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
<NotAuthorized>
@{ NavigationManager.NavigateTo("/login"); }
</NotAuthorized>
</AuthorizeRouteView>
</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
</CascadingAuthenticationState>
'C#' 카테고리의 다른 글
C#: Blazor Server에 Google OAuth 연동 (12) | 2021.12.21 |
---|---|
C#: Blazor IIS 배포 후 Route 이슈 (2) | 2021.12.13 |
C#: Property Copy (0) | 2021.11.28 |
C#: 프로그램 구동 시 관리자 권한으로 재실행 (0) | 2021.11.22 |
C#: OverlayDialog (불투명한 배경의 Dialog) (0) | 2021.09.21 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday