[Blazor] Roles > C#/.Net/Blazor/IIS

본문 바로가기
사이트 내 전체검색

C#/.Net/Blazor/IIS

[Blazor] Roles

페이지 정보

작성자 sbLAB 댓글 0건 조회 9,244회 작성일 21-09-23 21:00

본문

가입계정에 권한(역할 Roles)주고 권한별 제어


bea2909c14dd8d8f9e8b78c8fdf5301a_1632398299_5713.jpg
 

Blazor 에서 자동생성된 테이블


1. aspnetroles 테이블에서 역할 Id를 정한다. 

bea2909c14dd8d8f9e8b78c8fdf5301a_1632398369_7639.jpg


2. aspnetuserroles 테이블에서 aspnetusers 테이블(회원가입 후 회원테이블)의 Id값에 대한 Role를 추가(결정) 한다.

bea2909c14dd8d8f9e8b78c8fdf5301a_1632398553_644.jpg
 

3. 회원가입하면 aspnetusers 테이블에 회원가입 입력값이 추가된다.

bea2909c14dd8d8f9e8b78c8fdf5301a_1632398636_7349.jpg

 

[권한(역할)별 페이지 제어]


[Startup.cs]

public void ConfigureServices(IServiceCollection services)

        {         

services.AddDefaultIdentity<IdentityUser>() //login

.AddRoles<IdentityRole>()           //Role based Authorization

                .AddEntityFrameworkStores<AppDbContext>(); //login 

}


[Razor 페이지에서 사용] - 아래처럼 역할별 화면구성을 할수 있음.

@page "/"

<AuthorizeView Roles="Admin">

    <Authorized>

        <SurveyPrompt Title="Admin" />

    </Authorized>

    <NotAuthorized>

        <SurveyPrompt Title="Admin Auth None" />

    </NotAuthorized>

</AuthorizeView>


<AuthorizeView Roles="Member">

    <Authorized>

        <SurveyPrompt Title="Member" />

    </Authorized>

    <NotAuthorized>

        <SurveyPrompt Title="Member Auth None" />

    </NotAuthorized>

</AuthorizeView>



<AuthorizeView Roles="Admin,Member">

    <Authorized>

        <SurveyPrompt Title="Admin_Member" />

    </Authorized>

    <NotAuthorized>

        <SurveyPrompt Title="Admin_Member Auth None" />

    </NotAuthorized>

</AuthorizeView>



메인레이아웃(MainLayout.razor) 에서 아래처럼 Admin 메뉴구성도 가능


@inherits LayoutComponentBase


<div style="background-image: none;background-color: #3b5780;" class="sidebar">

    <NavMenu />

</div>


<div class="main">

    <AuthorizeView Roles="Admin">

        <Authorized>

                <div class="top-row px-4 fixed-top">

                    <!--- fixed-top 필요: 상단메뉴바 위치고정(본문 @Body 부분과 분리)  -->

                    <LoginDisplay />

                </div>    

        </Authorized>

    </AuthorizeView>


             <div class="content px-2">

                @Body

            </div>

</div>


<Spinner></Spinner>

<BlazoredToasts />

<RadzenNotification />

<RadzenDialog />

<RadzenNotification />

<RadzenContextMenu />

<RadzenTooltip />


[아래처럼 페이지 자체 도입부에 역할(권한) 체크하게 할수도 있다.]

@page "/admin"

@attribute [Authorize(Roles ="Admin")]   

..

..


※aspnetuserroles 에  SQL로 직접접근하여 각 회원계정별 역할을 추가,수정,삭제 할 수 있다.



https://www.c-sharpcorner.com/article/role-based-authorization-in-blazor/ 

https://blazorhelpwebsite.com/ViewBlogPost/21 



[이 게시물은 sbLAB님에 의해 2022-12-22 09:42:22 Web/PHP/API에서 이동 됨]

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
177
어제
396
최대
1,279
전체
222,227

그누보드5
Copyright © sebom.com All rights reserved.