在Blazor Server应用程序中,即使更改了cookie,用户仍然保持授权状态。这是因为Blazor Server使用了非常快速的数据同步来保持客户端和服务器之间的状态同步。因此,您需要在将cookie更改为未授权值时添加以下代码,以避免继续保持授权状态:
await HttpContext.SignOutAsync();
await HttpContext.SignInAsync(ClaimsPrincipalFactory.CreateAsync(user));
此代码将用户从系统中注销,然后使用未授权的cookie重新登录用户。这样,用户将不再保持授权状态。
以下是示例代码:
public async Task Logout()
{
await HttpContext.SignOutAsync();
HttpContext.Response.Cookies.Delete(".AspNetCore.Cookies");
HttpContext.Response.Cookies.Append(".AspNetCore.Cookies", $"{Guid.NewGuid()}");
return RedirectToAction(nameof(Login));
}
在上面的代码中,我们首先注销用户。然后,我们使用新的未授权cookie重新定向到登录页面。
上一篇:BlazorServerApp不能删除Identity页面
下一篇:BlazorServerAPP通过反向代理部署在NGINX上返回404NotFound错误,无法找到blazor.server.js文件。