[讨论]关于文本Session实现的一点困惑

| 17 Comments | 0 TrackBacks | WebBlog Articles

纯粹技术探讨。
近来在研究自定义文本Session,根据我自己对Session的理解和体会,实现办法可以是:

1。用户登陆,密码校对后,以一种算法随机生成一随机数字Session_id,具体实现就是服务器生成一纯文本文件,就以Session_id命名,用户id,密码等敏感信息写入这个文本,本地cookie写入用户id和Session_id。。由于登陆时候可以选择Session/cookie保持实效。这个数字比如[-1(不保存)+30(保存30天)等。。],同时写入Session文本和cookie。。

2。这样,如果选择保持登陆信息(比如+30),则在30天内用户再次访问时候,从cookie中获取Session_id。通过读取服务器上的Session_id文本,来检验用户id和密码。。如果通过。则自动认为登陆。

现在我的问题就是远程服务器上的Session文本文件的处理。大家知道,Session_id是随机产生的,那么相同的用户在不同的地方,不同的登陆时间得到的Session_id都是不同的,那么如果不对这些文本处理。久而久之,肯定有很多废弃了。。。那么应该对这些进行删除处理的。。那么机制呢?

文本的特殊性质,为了节省资源,一般只有在用户重新访问的时候才进行Session文本的时效验证。那么那些可能永远也访问不到的Session文本就验证遥遥无期了。

如果采用一种机制对Session文本进行删除,比如把时效写入Session文本,按照时效自动删除。。。但是时效选择比较长的呢?他可能是有效的Session,也可能是废弃的Session。如果删除,造成该用户下次不能自动登陆。。那就失去保持的含义了。如果不处理。则浪费空间。影响效率。 困惑ing。。。

希望各位高人指点。还有我对Session理解不对的地方也请不吝指教:)

引用通告|TrackBacks (0)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/9.

本文相关评论|Comments (17)

曾研究過的一個項目...汗.....

你產生一個 無設刪除時間的Session  及 產生一個 設了時間的Session
並使用 notpad打開看看吧.....

恩。。反正我现在不想让他们永久登陆了。。所以。。删除。哈哈:)

我的意见,如果选择永久登陆,那么生成的Session文件名以前加一个特殊的标记 比如 leo 之类的,这样每隔一段时间清理文件的时候可以保留这些。。

不过,如果永久登陆的人的cookie丢失了。。那。。。

下面引用由hztz在 2004/11/02 00:29am 发表的内容:
我的意见,如果选择永久登陆,那么生成的Session文件名以前加一个特殊的标记 比如 leo 之类的,这样每隔一段时间清理文件的时候可以保留这些。。
不过,如果永久登陆的人的cookie丢失了。。那。。。

恩。。。和我想的一样。。。就是我不知道这个文本是否是废弃的。。

所以。。可以选择7天=永久?就是不允许永久登陆。最长也只能选择7天登陆。。

或者? 这个文件保留。当一定时间比如10天没有人来访问它?认为它已经废弃?这样如果他第11天来了,对不起,请登陆吧?呵呵:)

那就用

用户名 + timemark + Session id

作文件名字。。。timemark表示保存的时间长短

这样登陆的时候就能直接检查是否过期了。。

似乎太长了吧?
我觉得直接修改属性,把他的创建时间修改成要过期的日子?也许一个stat函数就解决了?
我已经决定分目录了:)

下面引用由路杨在 2004/11/02 00:45am 发表的内容:
似乎太长了吧?
我觉得直接修改属性,把他的创建时间修改成要过期的日子?也许一个stat函数就解决了?
我已经决定分目录了:)

万一服务器时间错误呢?咔咔
下面引用由hztz在 2004/11/02 00:53am 发表的内容:
万一服务器时间错误呢?咔咔

时间不是读取的,是自己算出来写进去的,和实际的访问时间没有关系拉:)

让用户重新登陆一下没关系的嘛,几秒的事情

不如 SESSION 每月定期删除一次...

下面引用由红岭小石榴在 2004/11/03 00:00am 发表的内容:
让用户重新登陆一下没关系的嘛,几秒的事情
不如 SESSION 每月定期删除一次...

恩,目前我就是准备取消 “永久登陆” 这个选项

恩,一年都不重登陆一次的利率是很小的

下面引用由红岭小石榴在 2004/11/10 00:56am 发表的内容:
恩,一年都不重登陆一次的利率是很小的

一般系统都要重装一次呢。。

现在me很懒。。不装系统了。。。
严重跑题中。。。

世界尽头失落在海里的城市,狮子流泪的地方。让我们跑题……

既然有cookies 还要进程号干嘛呢?
没有cookies用进程号还可以理解的说~~~~~~~~~~~~~~~

发表该文评论|Leave a comment

最近发表|Recent Entries

[MT Tips]如何让某个日志在Blog首页固顶?

貌似最简单的办法就是修改日期到一个很遥远的日期,比如 AnySQL 那样:) 但是带来的问题的很多,比如导致Feed阅读器犯糊涂或者影响搜索引擎的收录等等,更糟糕的是对于 日志来说,最主要的就是发布日期。也许大家都已经发现了,我的主页模仿 MT Forum 搞了一个固顶日志(也是为了风格统一)出来,这个固顶日志是后台通过自己设置实现的。是怎么设置的。答案是利用 <mt:Entries> 的tags 功能。 具体概念代码如下:<mt:Entries tag="@top" sort_by="authored_on" sort_order="descend" limit="1" blog_ids="1,5"> dosthing.....</mt:Entries> 这样我们只要要在固定的主题 加上…

北京 Perl Workshop 2008 网站开张 - 接受大会注册,演讲报名

网站开张了, 地址是 http://conference.perlchina.org/bjpw2008/ 由 PerlChina 和 Postgresql China 合办,2008 年 11 月 8 号举行的 Beijing Perl Workshop 是一个免费的 Perl 交流会,向所有对…

好玩的 MT Forum 的按作者归档

Perl Forum 用 MT4 的 MT Forum 的功能搭建起来了好几天了,一直没有发现什么意外,今天突然发现 按作者按月归档 貌似找完了整个发布完的 Perl Forum 也没有找到 link ,查看作者个人信息貌似也没有 link ? 真是好玩的 归档方式。从后台看,给每个用户(作者)都建立了按月的归档页面,估计是为了便于各用户归档自己的文章吧? 后台抓图如下:…