Blazor에서 현재 로그인 사용자의 이름을 가져오는 코드 조각입니다.

 

#region Get UserId and UserName
[Parameter]
public string UserId { get; set; } = "";

[Parameter]
public string UserName { get; set; } = "";

[Inject] public UserManager<IdentityUser> UserManagerRef { get; set; }

[Inject] public AuthenticationStateProvider AuthenticationStateProviderRef { get; set; }

private async Task GetUserIdAndUserName()
{
    var authState = await AuthenticationStateProviderRef.GetAuthenticationStateAsync();
    var user = authState.User;

    if (user.Identity.IsAuthenticated)
    {
        var currentUser = await UserManagerRef.GetUserAsync(user);
        UserId = currentUser.Id;
        UserName = user.Identity.Name;
    }
    else
    {
        UserId = "";
        UserName = "Anonymous";
    }
}
#endregion

 

protected override async Task OnInitializedAsync()
{
    await GetUserIdAndUserName();
}

 

만약 최고 관리자로 로그인하면 최고 관리자 아이디가 저장되고, 로그인하지 않았을 때에는 Anonymous 값이 데이터베이스에 저장하도록 하는 시스템에서는 이번 아티클이 유용하게 사용될 수 있습니다. 

2021-03-24_3-00-14.jpg

 

 

Comments


Comments are closed