Мне нужна помощь в реализации пользовательского способа назначения претензий для аутентифицированных пользователей. При успешном входе в систему
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
//Get the user
ApplicationUser user = UserManager.FindByEmail(model.Email);
//Ends here
ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity);
Я использую userId для извлечения роли и другой информации о пользователе из хранилища данных. После этого я должен добавить претензии к пользователю с такой информацией, как электронная почта, роль, firstName, Lastname, пол и т.д., Прежде чем перенаправлять на панель пользователя. Так я пытаюсь это сделать, но проблема в том, что даже после добавления претензий в методе входа я не могу получить его в представлении _loginPartial бритвы
Например, когда я хочу отображать значение претензии электронной почты в части входа, подобной этой
var claims = ClaimsPrincipal.Current.Claims;
var principal = (ClaimsPrincipal)Thread.CurrentPrincipal;
var email = principal.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault();
Он возвращает null.
Итак, в результате я могу получить к ним доступ только в том же методе входа после добавления, но мне нужно иметь доступ к нему из любого места приложения. Пожалуйста, я буду признателен за любую помощь в том, как получить эти претензии в любом месте в приложении.
Спасибо.