ASP.NET Core 7 Web 使用Session

ASP.NET Core 好像不能像20年前那样直接使用Session函数,我使用如下方法

1、在NuGet安装以下2个包

2、在Program.cs注册

cs 复制代码
//注册Session
builder.Services.AddSession(options =>
{
    options.IdleTimeout = TimeSpan.FromMinutes(60);
    options.Cookie.HttpOnly = false;
});
//注册上下文
builder.Services.AddHttpContextAccessor();

var app = builder.Build();

//启用Session
app.UseSession();

3、在控制器中使用

cs 复制代码
public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    private readonly ISession _session; //session对象
    private readonly IHttpContextAccessor _contextAccessor; //上下文对象

    //构造函数的参数中引用IHttpContextAccessor对象
    //再把它和它的Session赋值给本控制器的_contextAccessor和_session 
    public HomeController(ILogger<HomeController> logger, IHttpContextAccessor contextAccessor)
    {
        _logger = logger;
        _contextAccessor = contextAccessor; 
        _session = contextAccessor.HttpContext.Session;
    }

    public IActionResult Index()
    {
          //然后可以使用_session来添加或者读取需要的变量
        _session.SetString("uname", "Jack");
        ViewData["uid"] = _session.GetString("uname");
        return View();
    }

}
相关推荐
张北涛2 分钟前
交换机详细
运维·服务器·网络
Aurora_NeAr2 分钟前
对比Java学习Go——程序结构与变量
后端
AntBlack21 分钟前
每周学点 AI:ComfyUI + Modal 的一键部署脚本
人工智能·后端·aigc
5大大大大雄1 小时前
docker容器日志处理
后端
我是哪吒1 小时前
分布式微服务系统架构第170集:Kafka消费者并发-多节点消费-可扩展性
后端·面试·github
liulilittle2 小时前
UNIX/macOS路由表查询原理与实现
服务器·开发语言·c++·macos·unix·编程语言
Hi202402172 小时前
基于阿里云部署 RustDesk 自托管服务器
运维·服务器·阿里云·云计算·远程控制·远程桌面
Badman2 小时前
分布式系统下的数据一致性-Redis分布式锁
redis·分布式·后端
Java水解2 小时前
盘点那些自带高级算法的SQL
后端
I like Code?2 小时前
阿里云服务器配置ssl-docker nginx
服务器·阿里云·ssl