Blazor에서 현재 로그인 사용자 이름 획득하기
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 값이 데이터베이스에 저장하도록 하는 시스템에서는 이번 아티클이 유용하게 사용될 수 있습니다.
Comments
Comments are closed