У меня есть приложение ASP.Net MVC, размещенное в Azure с Аутентификация службы приложений Azure (Easy Auth), успешно аутентифицирующая пользователей против 4 провайдеров.
Цель состоит в том, чтобы соответствовать созданному ClaimsPrincipalслужбой приложений против пользователей в базе данных, чтобы им могли назначаться дополнительные роли и т. д.
Однако я не могу обновить ClaimsPrincipal с измененными / новыми утверждениями.Никаких ошибок не возникает, ClaimsPrincipal просто не изменяется для последующих запросов.
Я пробовал следующее:
var principal = ClaimsPrincipal.Current;
var context = HttpContext.Current;
var existingClaim = identity.FindFirst(claimKey);
if (existingClaim != null)
identity.RemoveClaim(existingClaim);
identity.AddClaim(new Claim(claimKey, claimValue));
var updatedPrincipal = new ClaimsPrincipal(identity);
var authenticationManager = context.GetOwinContext().Authentication;
authenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant(updatedPrincipal, new AuthenticationProperties() { IsPersistent = true });
authenticationManager.SignOut(identity.AuthenticationType);
authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity);
context.User = updatedPrincipal;
Thread.CurrentPrincipal = updatedPrincipal;
Как я могу изменить App App ClaimsPrincipal для добавления новых заявок?