我有一个Web应用程序,在登录过程中将userId存储在一个http会话变量中(确认当然!)。我没有使用除此之外的任何会话变量来检索有关用户的信息。我不知道这个对我来说是否是最具扩展性的解决方案。我的服务器为此预留了任何内存吗?是否更好地使用cookie?
答案 0 :(得分:1)
如果您正在使用多个应用程序服务器(现在或将来),我相信http会话变量依赖于用户所在的服务器(如果我错了就纠正我),所以在这种情况下,你可以找到一个“粘性会话”解决方案,将用户锁定到特定服务器(例如,EC2的负载均衡器提供:http://aws.amazon.com/about-aws/whats-new/2010/04/08/support-for-session-stickiness-in-elastic-load-balancing/)。
我建议使用cookie(假设我的逻辑是正确的),但是你应该确保你有某种安全措施,这样用户就无法更改他们的cookie并获得对另一个用户帐户的访问权限。例如,您可以散列一些带有密钥的字符串和您检查服务器端的用户ID,以确认它没有被篡改。