gpt4 book ai didi

.net-core - 如何刷新与当前请求期间登录的用户不同的用户的声明?

转载 作者:行者123 更新时间:2023-12-03 08:18:57 25 4
gpt4 key购买 nike

我使用以下代码在我的 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");
}

最佳答案

经过几天的寻找,我发现我想要的是不可能的。您不能在不将 cookie 时间跨度设置为 0 的情况下强制注销用户

options.Cookies.ApplicationCookie.ExpireTimeSpan = 0;

在这种情况下,它会在用户每次发出请求时检查 cookie。使用以下代码,您可以强制用户再次登录:

await _userManager.UpdateSecurityStampAsync(user);

关于.net-core - 如何刷新与当前请求期间登录的用户不同的用户的声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45347956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com