Cookies asp.net核心会话不工作,在响应头中设置cookie,但未在浏览器中设置
我使用会话管理ASP.NET CORE中的应用程序状态,配置如下Cookies asp.net核心会话不工作,在响应头中设置cookie,但未在浏览器中设置,cookies,browser,asp.net-core,setcookie,cookie-httponly,Cookies,Browser,Asp.net Core,Setcookie,Cookie Httponly,我使用会话管理ASP.NET CORE中的应用程序状态,配置如下 services.AddSession(options => { options.CookieName = ".my.Session"; options.IdleTimeout = TimeSpan.FromSeconds(20); }); 它在本地主机上工作,但在远程IIS 8上,它没有创建cookie,因此
services.AddSession(options =>
{
options.CookieName = ".my.Session";
options.IdleTimeout = TimeSpan.FromSeconds(20);
});
它在本地主机上工作,但在远程IIS 8上,它没有创建cookie,因此无法获取值。我也启用了CORS,但不知道到底是什么导致了这个问题。在日志中也没有显示错误。
响应标头集cookie存在,但未在浏览器中设置
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(20);
options.CookieHttpOnly = true;
});
可能它正在工作,现在试试吧我不久前就遇到了这个问题。它可能与新的Cookie策略有关 尝试设置
options.checkApproveRequired=context=>false代码>。因此,在Startup.cs中的“ConfigureServices”中,需要如下所示:
public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration["ConnectionStrings:DefaultConnection"];
services.AddDbContext<ProjectDbContext>(options => options.UseMySql(connection, b => b.MigrationsAssembly("PrimaryProject")));
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
//Here comes the change:
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql(connection));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSession();
}
public void配置服务(IServiceCollection服务)
{
var connection=Configuration[“ConnectionString:DefaultConnection”];
services.AddDbContext(options=>options.UseMySql(connection,b=>b.MigrationsAssembly(“PrimaryProject”));
配置(选项=>
{
//此lambda确定给定请求是否需要非必要cookie的用户同意。
//变化来了:
options.checkApprovered=context=>false;
options.MinimumSameSitePolicy=SameSiteMode.None;
});
services.AddDbContext(选项=>
options.UseMySql(连接));
services.AddDefaultIdentity()
.AddEntityFrameworkStores();
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSession();
}
问候,
你找到解决办法了吗?我这里也有同样的问题。