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

}
相关推荐
乙己4073 小时前
计算机网络——网络层
运维·服务器·计算机网络
Ai 编码助手5 小时前
在 Go 语言中如何高效地处理集合
开发语言·后端·golang
小丁爱养花5 小时前
Spring MVC:HTTP 请求的参数传递2.0
java·后端·spring
Channing Lewis5 小时前
什么是 Flask 的蓝图(Blueprint)
后端·python·flask
qzhqbb5 小时前
web服务器 网站部署的架构
服务器·前端·架构
轩辕烨瑾7 小时前
C#语言的区块链
开发语言·后端·golang
果果开发ggdoc.cn7 小时前
WordPress免费证书插件
服务器·https·ssl
小歆8848 小时前
100%全国产化时钟服务器、全国产化校时服务器、全国产化授时服务器
运维·服务器
hgdlip8 小时前
IP属地与视频定位位置不一致:现象解析与影响探讨
服务器·网络·tcp/ip
栗豆包8 小时前
w175基于springboot的图书管理系统的设计与实现
java·spring boot·后端·spring·tomcat