C# 服务器端Blazor用户在信号电路意外断开时注销

C# 服务器端Blazor用户在信号电路意外断开时注销,c#,blazor,blazor-server-side,C#,Blazor,Blazor Server Side,我有一个asp.net core 3.1服务器端Blazor网站,它使用Microsoft Identity framework进行身份验证。似乎每当用户的信号电路意外中断时,他们就会失去身份验证状态,必须再次登录 在这些场景中,.AspNetCore.Identity.Applicationcookie仍将存在且未过期。如果电路正常终止(例如关闭浏览器),则不会出现问题;只有在vpn断开连接这样的情况下才能使用 以下是启动的身份验证部分: services.AddDbContext<Id

我有一个asp.net core 3.1服务器端Blazor网站,它使用Microsoft Identity framework进行身份验证。似乎每当用户的信号电路意外中断时,他们就会失去身份验证状态,必须再次登录

在这些场景中,
.AspNetCore.Identity.Application
cookie仍将存在且未过期。如果电路正常终止(例如关闭浏览器),则不会出现问题;只有在vpn断开连接这样的情况下才能使用

以下是启动的身份验证部分:

services.AddDbContext<IdentityDataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("IntegrationDatabase")));

services.AddDefaultIdentity<IdentityUser>(options =>
{
    options.Password.RequiredLength = 10;
    options.SignIn.RequireConfirmedAccount = false;
    options.SignIn.RequireConfirmedEmail = false;
})
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<IdentityDataContext>();

services.AddAuthorization(options =>
{
    options.AddPolicy(CanViewDataPolicy.Name, CanViewDataPolicy.Policy);
    options.AddPolicy(RequireAdminPolicy.Name, RequireAdminPolicy.Policy);
});
services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString(“IntegrationDatabase”));
services.AddDefaultIdentity(选项=>
{
options.Password.RequiredLength=10;
options.SignIn.RequireConfirmedAccount=false;
options.SignIn.RequireConfirmedEmail=false;
})
.AddRoles()
.AddEntityFrameworkStores();
services.AddAuthorization(选项=>
{
options.AddPolicy(CanViewDataPolicy.Name,CanViewDataPolicy.Policy);
options.AddPolicy(requiredminpolicy.Name,requiredminpolicy.Policy);
});

有人知道为什么会发生这种情况或如何预防吗?我希望用户在注销或cookie过期之前保持身份验证。

当用户重新连接VPN时,如果涉及代理,则可能会出现问题。只是一个想法,但如果你还没有。我可以看到,在重新连接到vpn后,原始电路可能无法恢复,但我不明白是什么具体原因导致用户必须重新验证。我希望用户会重新加载页面,创建一个新的线路,并且仍然进行身份验证。当用户重新连接VPN时,如果您有代理参与,这可能是问题所在。只是一个想法,但如果你还没有。我可以看到,在重新连接到vpn后,原始电路可能无法恢复,但我不明白是什么具体原因导致用户必须重新验证。我希望用户能够重新加载页面,创建一个新的电路,并且仍然能够进行身份验证。