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

}
相关推荐
Mr.Entropy16 小时前
JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
java·后端·hibernate
YDS82917 小时前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq
无限大617 小时前
为什么"区块链"不只是比特币?——从加密货币到分布式应用
后端
洛神么么哒17 小时前
freeswitch-初级-01-日志分割
后端
蝎子莱莱爱打怪17 小时前
我的2025年年终总结
java·后端·面试
奋进的芋圆17 小时前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端
星辰烈龙17 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
云上小朱18 小时前
软件部署-在k8s部署Hadoop集群
后端
浩子智控18 小时前
分区操作系统、容器化、虚拟机的概念
服务器·系统安全
镜花水月linyi18 小时前
Cookie、Session、JWT 的区别?
后端·面试