Хранение нескольких пользовательских значений в идентификационном куки при входе - PullRequest
0 голосов
/ 05 октября 2018

У меня есть фрагмент кода при входе пользователя в систему, например:

 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

Как я могу это сделать?

Может ли кто-нибудь мне помочь?

...