一个用户登录以后生成一个guid,将这个guid存在客户端(cookie里),并且将guid插入到服务器端的Dictionary<string,DateTime>(guid,最后操作时间)。
当用户发送一次服务器请求以后,从cookie里获取这个guid,然后去更新Dictionary<string,DateTime>里对应guid的最后更新时间。
另外,在服务器端专门有一个线程去扫描这个Dictionary<string,DateTime>,删除timeout的记录(根据最后操作时间来判断)。
我不知道iis的session是怎么实现的?不知道这样写,效率上有没有iis的高。iis的session有个弊端,多个站点无法共享session,而且用户数太多的话,很占用服务器资源。我自己这样写的话,以后可以存到数据库里去。
当用户发送一次服务器请求以后,从cookie里获取这个guid,然后去更新Dictionary<string,DateTime>里对应guid的最后更新时间。
另外,在服务器端专门有一个线程去扫描这个Dictionary<string,DateTime>,删除timeout的记录(根据最后操作时间来判断)。
我不知道iis的session是怎么实现的?不知道这样写,效率上有没有iis的高。iis的session有个弊端,多个站点无法共享session,而且用户数太多的话,很占用服务器资源。我自己这样写的话,以后可以存到数据库里去。
用户登录后设置状态,使用数据库等保存
另外,MSDN也有一个自定义的例子http://msdn.microsoft.com/zh-cn/library/aa479313.aspx
一般是通过定制 session 存储来实现跨域, 跨虚拟目录的 session 机制,使用 asp.net, 这些底层的机制还是尽量使用原生的好,
虽然不喜欢 asp.net 的控件(渲染机制),
但 asp.net 对 http 的封装还是很方便的
一个机器上登多个账号,前面登的账号被后面的冲掉了
同一个账号可以在不同的地方登陆,
这两个基本的问题都没有完成啊,
你这个高科技不更加不懂了。
同一个账号可以在不同的地方登陆,锁定IP不就行了
你现在只是实现了Dictionary<string,DateTime>,但如果我想往SESSION里面存放object怎么办?
asp.net的session不需要读取cookie吗?另外asp.net还提供了将session存到sqlserver的功能,只要修改一下web.config..
string SessionId{get;set;}
DateTime Expires {get;set;}
object Value{get;set;}
}效率上没做过对比,不说了..
你们说用Dictionary<string,object>,这个object里要存放一些什么东西。我没这方面的经验,请大家明示。
谢谢。