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();
    }

}
相关推荐
Joey_Chen25 分钟前
【What · Why · How】浅析select/poll/epoll与IO多路复用
linux·服务器
java叶新东老师27 分钟前
CMakelists.txt 实现多级目录编译
java·服务器·数据库
Java水解31 分钟前
Spring AI模块化RAG架构解析:三阶段设计与实现详解
后端·spring
蓝倾42 分钟前
京东商品SKU数据采集方式及接口说明
前端·后端·api
SimonKing44 分钟前
一文搞定:SpringBoot集成语音识别模型FunASR
java·人工智能·后端
wenb1n1 小时前
【Nginx】Nginx进阶指南:解锁代理与负载均衡的多样玩法
后端
Undoom1 小时前
基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
后端
(Charon)1 小时前
【C语言网络编程基础】TCP并发网络编程:io多路复用
运维·服务器
“αβ”1 小时前
线程安全的单例模式
linux·服务器·开发语言·c++·单例模式·操作系统·vim
MacroZheng1 小时前
换掉Navicat!一款集成AI功能的数据库管理工具,功能真心强大!
java·后端·mysql