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

}
相关推荐
点光36 分钟前
使用Sentinel作为Spring Boot应用限流组件
后端
不要秃头啊1 小时前
别再谈提效了:AI 时代的开发范式本质变了
前端·后端·程序员
有志2 小时前
Java 项目添加慢 SQL 查询工具实践
后端
山佳的山2 小时前
KingbaseES 共享锁(SHARE)与排他锁(EXCLUSIVE)详解及测试复现
后端
Leo8992 小时前
rust 从零单排 之 一战到底
后端
程序员清风3 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
鱼人3 小时前
MySQL 实战入门:从“增删改查”到“高效查询”的核心指南
后端
大鹏19883 小时前
告别 Session:Spring Boot 实现 JWT 无状态登录认证全攻略
后端
Java编程爱好者3 小时前
从 AQS 到 ReentrantLock:搞懂同步队列与条件队列,这一篇就够了
后端
鱼人4 小时前
Nginx 全能指南:从反向代理到负载均衡,一篇打通任督二脉
后端