首页 > 解决方案 > 使用 HttpContext.Session 将 ASP.NET Core 2.2 应用程序部署到 IIS 会话后无法正常工作

问题描述

使用 IIS 部署我的 ASP.NET Core 2.2 应用程序后,使用 HttpContext.Session 编码的会话无法正常工作。如果我设置了一个会话变量,一旦请求结束,变量就会被删除,如果我在使用不同的请求之后尝试访问它,变量的值为 null。如果我在 Visual Studio 中运行该应用程序,一切正常。

标签: iisasp.net-core

解决方案


除非您希望所有 cookie 都不需要同意,否则不要这样做。要允许会话,您应该只Cookie.IsEssential = trueAddSession. 这会将会话 cookie 标记为必需品。

services.AddSession(options => {
    options.IdleTimeout = TimeSpan.FromMinutes(15);
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});

阅读本文了解更多信息:https ://andrewlock.net/session-state-gdpr-and-non-essential-cookies/


推荐阅读