会话中永远不应保留哪些数据?
答案 0 :(得分:7)
我真的希望你的意思是什么 kind 更清楚。根据答案,我可以拿出一对:
答案 1 :(得分:4)
如果可能,请在会话中存储 nothing 。维护状态是一种不可靠的方式,特别是如果您需要迁移到Web场。另外,我认为它鼓励设计不佳。 HTTP是无状态的,网站的设计方式应该假设对于任何请求,您可以从头开始。
答案 2 :(得分:2)
答案 3 :(得分:2)
这个答案适用于PHP会话。
如果您的意思是$_SESSION
,那么它会存储在硬盘驱动器上,因此它不能立即用于Cookie之类的任何内容。
但是,在共享主机上,从其他网站访问会话文件有时可能很简单。
我不会在您希望共享主机上的任何其他人看到的会话中存储任何内容。
答案 4 :(得分:1)
这可能是一个非常主观的问题。从技术上讲,任何可序列化的东西都可以存储在会话中。但是肯定有一些情况你不想在会话中添加内容。复杂对象,具有大型集合作为属性的对象等。所有这些都被序列化为字节数组并保存在内存中(对于InProc会话状态),然后在需要时再次反序列化。对象越复杂,它就可以来回传递更多的资源。
根据您拥有的用户数量,您可能希望限制进入会话的项目数,并可能使用ViewState或其他持久性方法。如果它确实适用于多个页面,那么它可能是会话的一个很好的候选者。如果它只在一两页中使用,那么ViewState,QueryString等可能会更好。
答案 5 :(得分:1)
我不会将session
放在session
内!
答案 6 :(得分:0)
只要您将SessionMode="InProc"
保留在web.config
中,就可以在会话中存储任何内容。这会将任何会话数据存储在用户特定上下文中的Web服务器内存中。
但是,如果要扩展一天并在服务器场中运行Web应用程序,则必须使用另一个SessionMode。那么你就不能再存储那些不可序列化的复杂类型的对象(不幸的是,字典是一个常见的候选者),你将不得不改变你的设计。
答案 7 :(得分:0)
有关您不应该参加会议的其他事项的示例,请参阅Tess Ferrandez's blog以及原因。
答案 8 :(得分:0)
股票提示,盗版光盘,完整电影(除了“文员”,电影很棒),模拟信息,......
这个问题似乎有点模糊 - 我可以想到不应该存储在会话中的无数种信息!