作者liaommx (Orz)
看板C_Sharp
标题[问题] asp.net session与cookie时效问题?
时间Thu Apr 15 21:29:32 2021
目前在使用session上碰到一些问题.
环境是iis(版本不确定) c# asp.net写的
使用者登入登出其实都没问题,
可是如果是使用fiddler做代理.
点了登出把session 做了abandon,removeall,
也做了cookie 清空asp.net_sessionid
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId",""))
此时把当初fiddler记录到的request做replay,
iis server还是会回应相对应的cache.
导致只要能监听到相对应的封包,就可以取得server同样的回应.
如果replay时也要把回应的这些cache都不回应的话,
应该从code本身的登入机制着手呢?
还是该往iis server设定的方向去着手?(例如header no-cache等等的方法)
不知道大家有没有什麽想法可以建议呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.125.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1618493374.A.0D6.html
1F:推 EnjoyLife000: 可能要先弄清楚session实际的运作机制,根据内文上 04/21 12:22
2F:→ EnjoyLife000: 来看,你的方向是错误的 04/21 12:22
3F:→ ssccg: Session.Abandon、RemoveAll应该都只是清掉session存的东西 04/22 15:19
4F:→ ssccg: Cookie是给正常的那个client指示,你用另一个client去repla 04/22 15:21
5F:→ ssccg: y那就跟Cookie怎麽设没关系,要挡这个需要的是server-side 04/22 15:22
6F:→ ssccg: 要invalidate SessionId→登入状态这个关系 04/22 15:23
7F:→ ssccg: 其实一般的Web framework都会在lougout时自己处理这个,但 04/22 15:26
8F:→ ssccg: ASP.NET就是不会,SessionId一发出去就要到期才失效 04/22 15:26
9F:→ ssccg: 要解决这问题就是你自己要多实作一个记录登入状态的机制 04/22 15:27
10F:→ ssccg: 每个request来你要多检查你自己管理的状态是不是已登出 04/22 15:29
11F:→ ssccg: 这问题10几年来就是没修,应该可以找到很多解法... 04/22 15:34
12F:→ liaommx: 感谢以上两位提供意见,最後还是在session logout时 04/23 07:11
13F:→ liaommx: 纪录session id,然後做判读,若有相同session来就redirect 04/23 07:11