У меня есть фрагмент кода при входе пользователя в систему, например:
ClaimsIdentity identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, model.Username));
List<Claim> claims = new List<Claim>();
var roles = user.UserRoles.ToList();
foreach (var item in roles)
{
claims.Add(new Claim(ClaimTypes.Role, item.Roles.RoleName));
}
identity.AddClaims(claims);
identity.AddClaim(new Claim(ClaimTypes.Name, user.UserId.ToString()));
AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTimeOffset.UtcNow.AddHours(8) }, identity);
Так что, как только этот фрагмент кода будет выполнен, я могу получить доступ к ролям пользователя и идентификатору пользователя в других контроллерах, как показано ниже:
User.Identity.Name // => getting user id of current logged user
А также:
User.IsInRole("Regular"); // => getting user role in system
Теперь мне нужно больше переменных, которые будут сохраняться в куки при входе пользователя, например:
// User theme => // I have multiple CSS files relating to different styles of page and I'd need to store this information in Identity as well.
// User preferences => multiple preferences as well
, чтобы в концеиз всего, что я могу получить, получая такую информацию, как эта:
User.Identity... // user theme
User.Identity... // user preferences
Как я могу это сделать?
Может ли кто-нибудь мне помочь?