嗨,我在我的应用程序中使用了 session ,我想知道在页面上维护 session 值的最佳做法是什么。我需要保存 session 中存储的值,直到回帖到特定页面。让我举例说明:
Page A: Page B:
Sets Session["ID"] = 5 --> Gets Session["ID"]
And redirects to Page B and populates data.
我需要
Session["ID"]
在页面 B 上保持事件状态,直到在页面 B 上执行回发。我需要这个,因为我将使用 Session["ID"]
的值更新数据库中的数据。我的问题是:
Session["ID"]
是否有任何保证?将保持其值(value)直到执行回发?它不会死吗?如果是这样:我可以采取哪些方法来确保它保持其值(value)?我正在考虑在页面 B 中创建一个私有(private)变量来存储
Session["ID"]
在 Page_Load 上。请让我知道你的想法,谢谢。对不起,我应该说:我不能允许用户修改
ID
.所以没有Query Strings
, 谢谢。
最佳答案
session 默认存储在服务器的内存中。如果用户的 session 超时,这可能会出现问题。此外,如果您将多个服务器用作场,则不能在内存中使用 Session,因为您不能保证用户每次都会使用同一台服务器。
保证 session 信息不会丢失的最好方法是将用户的 session 持久化到 SqlServer 数据库。 Here is a tutorial on how to set that up.
Session 并不像一些海报所暗示的那样是性能杀手。这是一种非常有用的方法,可以轻松维护每个用户的状态。
另请参阅我对 this question 的回答用于包装 ASP.NET session 对象的好方法。
关于asp.net - session 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/643925/