Claim을 활용해 @User.Identity에서 특정값을 사용하는 방법
1. 로그인 시 Claims에 사용자 정보 추가로 저장해두기
예시, AAA를 Claim에 집어넣으면,
var user = _userdb.Users.FirstOrDefault(u => u.UserName == Input.Email);
// Claims를 사용해서 사용자 정보 추가로 저장해서 쉽게 가져오기
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, user.UserName),
new Claim("AAA", user.AAA)
};
참고, Claim 객체 생성하는 방법, 아래 주석을 풀어 사용하면 된다.
나 같은 경우는 기존 로그인에 User.Identity를 먼저 저장하고 사용해서 아래 방법으로는 덮어써지지 않았다.
// ClaimsIdentity 객체 생성
//var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
// ClaimsPrincipal 객체 생성
//var principal = new ClaimsPrincipal(identity);
새로운 방법,
Claim에 AddClaim을 사용하여 추가하는 방법을 이용.
foreach (var claim in claims)
{
// 이미 claim이 있으면 삭제
if ((await _userManager.GetClaimsAsync(user)).Any(c => c.Type == claim.Type))
{
await _userManager.RemoveClaimAsync(user, (await _userManager.GetClaimsAsync(user)).First(c => c.Type == claim.Type));
}
// 새 claim 추가
await _userManager.AddClaimAsync(user, claim);
}
View 에서 불러올 때는 아래와 같이 하면 된다,
@using System.Security.Claims;
@{
var AAA = ((ClaimsIdentity)User.Identity)?.FindFirst("AAA")?.Value;
}
'복습용 기술공부' 카테고리의 다른 글
C# 에서 csv 파일 읽어오기 (0) | 2024.01.05 |
---|---|
Claim에 강제로 데이터 넣기 (0) | 2024.01.05 |
Local Storage 저장하는 방법 (1) | 2023.12.27 |
c# 도메인 가져오기, Custom Validation 사용방법 (1) | 2023.12.18 |
230410 _ spotify api 사용과 tictok에서 빌보드 올라간 곡 체크 (0) | 2023.04.10 |