Net Core 使用Redis保存进程外session
Posted dwtx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Net Core 使用Redis保存进程外session相关的知识,希望对你有一定的参考价值。
Redsi下载地址:https://github.com/MSOpenTech/redis/releases 。
下载后解压
找到redis.windows.conf文件, (修改密码这步骤可省略)
打开 找到requirepass 节点 ,放开注释符 “#” ,后面的值改成自己要设置的密码
打开 cmd 窗口,使用 cd 命令切换目录到程序解压的目录或者直接到解压文件的目录下地址栏输入cmd回车
redis-server.exe redis.windows.conf
新启动一个cmd窗口
redis-cli.exe -h 127.0.0.1 -p 6379 -a Mypwd
若没设置密码 执行
redis-cli.exe -h 127.0.0.1 -p 6379
然后使用set get 执行 存取值
VS 操作
在项目添加 StackExchange.Redis包
Install-Package StackExchange.Redis
配置文件配置Redis 链接串
"ConnectionStrings": "RedisConn": "127.0.0.1:6379,allowAdmin=true,password=Mypwd,defaultdatabase=0" , "Logging": "LogLevel": "Default": "Trace", "System": "Information", "Microsoft": "Information" , "COREHOST_TRACE": 1, "AllowedHosts": "*"
Startup.cs 里ConfigureServices方法添加 session 及Redis设置
services.AddDistributedRedisCache(options => options.Configuration = Configuration.GetConnectionString("RedisConn"); options.InstanceName = "MyTest.Web_"; ); services.Configure<CookiePolicyOptions>(options => // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => false; // Default is true, make it false options.MinimumSameSitePolicy = SameSiteMode.None; ); //添加session services.AddSession(options => options.IdleTimeout = TimeSpan.FromHours(2); //session 有效期 options.Cookie.HttpOnly = true;//设为httponly );
Startup.cs 里Configuref方法添加
app.UseSession();
程序使用session既可
//写入 HttpContext.Session.SetString("testkey", "abc"); //读取 string uid = HttpContext.Session.GetString("mruserid");
用Redis管理工具 Redis Desktop Manager 链接查看
上个图可能显示不全 补下上个图的一部分
以上是关于Net Core 使用Redis保存进程外session的主要内容,如果未能解决你的问题,请参考以下文章
进程内和进程外托管的 ASP .NET Core 3 + Identity Server 问题
HTTP 错误 502.5 - 升级到 ASP.NET Core 2.2 后 ANCM 进程外启动失败
将 HttpContext 注入到一个类中,并在 .net core 中调用控制器外的类