services.AddSession(s => {
s.Cookie.Name = ".Web.Session";
s.Cookie.HttpOnly = true;
s.IdleTimeout = TimeSpan.FromSeconds(10);
});
然后在 Controller 里
HttpContext.Session.Set("User_Role", ur);
有两个问题不懂
第二个问题解决了,源码上说的是 This is not the same as the session cookie
解决了 cookie要设置max-age
1
chinvo 2021-05-02 15:23:53 +08:00 via iPhone
session id 加密保存到 cookie
asp.net core 的所有 cookie, 除了那个前端设置的 GDPR cookie, 都是用 data protection 加密的 要清除 session, 用 HttpContext.Session.Clear(); 但是没有 session.destroy |
2
zxCoder OP @chinvo 我现在设置了 session 很短的存活时间进行测试,session 是正常的,比如 10 秒后再请求就会生成一个新的 session 覆盖,但是 cookie 不会,一直是一开始那一个
|
3
chinvo 2021-05-02 15:39:17 +08:00 via iPhone
session 的 ttl 是在 session store 里面实现的, 和 session id 没有直接关系
|
5
chinvo 2021-05-02 19:02:14 +08:00 via iPhone
|