0
我使用以下代码更新我的Web应用程序中用户的声明。但是,要更新此用户的声明/ Cookie,我想强制他再次登录。所以基本上我想在更新索赔后过期他的cookie。任何想法如何做到这一点?更新远程用户声明
await _signInManager.RefreshSignInAsync(user);是我尝试的第一件事,但因为我正在更新另一个用户的声明而失败:)
我发现的所有其他示例都与RefreshSignInAsync差不多,并且不处理我正在更新的事实另一个用户的声明。
public async Task<IActionResult> AddClaimPost(string id)
{
var user = _context.ApplicationUser
.SingleOrDefault(m => m.Id == id);
foreach(var item in Request.Form)
{
if (item.Key.Contains("Claim"))
{
if (item.Value.Contains("true"))
{
if (!User.HasClaim(item.Key, item.Key))
{
var result = await _userManager.AddClaimAsync(user, new Claim(item.Key, item.Key));
}
}
else
{
var result2 = await _userManager.RemoveClaimAsync(user, new Claim(item.Key, item.Key));
}
}
}
await _signInManager.RefreshSignInAsync(user);
return RedirectToAction("Overview");
}