来自智利的问候!我在平衡服务器(2 个服务器)上部署 ASP.NET Core 6 Razor 时遇到问题。该服务器不使用粘性会话标志。我遇到过很多这样的场景:
有时刷新网页恢复正常,但进行任何操作又出现上述问题。服务器是在 https 下配置的。
我没有在不使用粘性会话的情况下执行此操作的经验。
与 ChatGPT 合作这对我帮助很大,我正在做接下来的事情来尝试解决问题:
这里的代码:(program.cs)
RedisCacheOptions cacheoptions = new RedisCacheOptions()
{
Configuration = conn,
InstanceName = "SampleInstance" + Guid.NewGuid()
};
builder.Services.AddDistributedRedisCache(options =>
{
options = cacheoptions;
});
builder.Services.Configure<CookieAuthenticationOptions>(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
options.Cookie.Name = "MyWebsite";
});
builder.Services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
builder.Services.ConfigureApplicationCookie(options =>
{
options.Cookie.HttpOnly = true;
options.Cookie.SameSite = SameSiteMode.None;
options.Cookie.MaxAge = TimeSpan.FromHours(5);
options.SlidingExpiration = true;
options.LogoutPath = $"/Licencias/Logout";
options.AccessDeniedPath = $"/Account/AccessDenied";
});
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
{
options.LoginPath = "/Login/Index";
options.AccessDeniedPath = "/Account/AccessDenied";
options.Events.OnSigningOut = (context) =>
{
context.Response.Redirect("/Login/Index");
return Task.CompletedTask;
};
});
应用程序配置:
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedProto
});
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseMiddleware<ValidarSesionMiddleware>();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseCookiePolicy();
提前致谢!