【转】netcore获取不到session值
原文地址:https://www.cnblogs.com/LuoEast/p/9672349.html
原文地址:https://stackoverflow.com/questions/49317304/asp-net-core-2-1-session
在启动类的configure services()方法中,设置选项。checkconsent必需=context=false;如下:
services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => false; // Default is true, make it false options.MinimumSameSitePolicy = SameSiteMode.None; });
原因是:
我猜在默认情况下,checkconsent需要是正确的,这是为了实现GDPR的遵从性。如果您点击了页面顶部的同意弹出(在默认模板的情况下),您的会话cookie将按照您的预期开始工作。GDPR规定了cookie的操作方式,并且在用户同意使用cookie之前不会使用。
第二种设置方法
解决方案是将会话cookie标记为必不可少的。
public void ConfigureServices(IServiceCollection services) { //... services.AddSession(opt => { opt.Cookie.IsEssential = true; }); //... }
有关标志的文档指出:
指示此cookie对于应用程序正常运行是否必不可少。如果为true,则可以绕过同意策略检查。默认值为false。
这将使cookie策略选项保持不变,并且会话仍按预期运行,因为它CookiePolicyOptions.CheckConsentNeeded仅影响非必要的cookie。

浙公网安备 33010602011771号