平时写程序不用考虑登录问题,这段时间开发一个后台管理程序,并且要暂存一些用户的登录信息。所以还是用了以往的方法,用类中的静态属性来保存信息,用静态方法读出写入信息。实现简单的跨页面的共享数据。
可是写完程序的时候,忽然意识到一个问题!
当第一个用户登录进来后,静态属性被赋值了第一个用户的信息,当第二个用户登录后,这个静态属性就被赋值了第二个用户信息。
那么当我以后再想取回第一个用户登录时的一些属性,那么我将无法取到,因为这个时候静态属性已经被第二个登入用户重新赋值。
而非静态属性,无法再跨页面共享数据。
QueryString不现实,因为我不知道何时用到这个属性。
Session对象不好,Session做基本登录验证,用过多的Session给服务器鸭梨太大。1个Session=12K内存。并发数过大的时候是噩梦。
Application对象不好,因为也是公用,并且操作时候需要加锁、解锁。
所以,只能用Cookie了,先暂存在客户端上,等需要时,再在客户端取出。并且设置过期时间为关闭浏览器时。
Response.Cookie["cookName"].Expires = DateTime.MinValue; //关闭浏览器时就失效。
Response.Cookie["cookName"].Expires = DateTime.MaxValue; //永不失效。但是不要用,因为不要私自替用户做决定。
但若客户端关闭了Cookie功能,那就杯具了!!!!
天啊,这么一个问题一直没有测试出来,因为我一直都是一台电脑,一个用户来进行登录测试!!!!!太失败了!!!!!