Claim을 사용하면 로그인 마다 데이터를 넣을 수 있다.
특정 상황에서 claim을 넣어야 할 경우가 있다.
보안 상 문제가 있을 수 있지만, 아래와 같이 해결이 가능하다.
먼저 아래처럼 불러오고
private readonly SignInManager<유저정보DB> _signInManager;
private readonly UserManager<유저정보DB> _userManager;
public 사용할Controller(UserManager<유저정보DB> userManager, SignInManager<유저정보DB> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
기존 코드에 한줄을 추가하면 된다.
// Claim 수정
var claims = new List<Claim>
{
new Claim("불러올이름", 저장할것)
};
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);
// 쿠키, 클래임 강제로 업데이트
await _signInManager.RefreshSignInAsync(user);
}
await _signInManager.RefreshSignInAsync(user);
이 줄을 추가하면 쿠키에 클레임이 강제로 업데이트 되고, 새로고침하면 가져올 수 있다.
'복습용 기술공부' 카테고리의 다른 글
C# 잊기 전에 팁 적어 놓기 (1) | 2024.01.05 |
---|---|
C# 에서 csv 파일 읽어오기 (0) | 2024.01.05 |
Claim 활용하는 방법 (0) | 2024.01.03 |
Local Storage 저장하는 방법 (1) | 2023.12.27 |
c# 도메인 가져오기, Custom Validation 사용방법 (1) | 2023.12.18 |