asp.net - session 最佳实践

标签 asp.net session-variables

嗨,我在我的应用程序中使用了 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/

相关文章:

c# - asp.net 中的倒数计时器

c# - 一个全局变量,用于存储当前 session 中的当前用户数据

Session_End 事件中 Session 变量的 asp.net 值

javascript - 在关闭浏览器时清除缓存的代码

asp.net - MIGS VPC 集成 E5000 : Cannot form a matching secure hash based on the merchant's request using either of the two merchant's secrets

c# - asp.net TreeView 中的 OnSelectedNodeChanged 事件不起作用

c# - ASP.NET 中的 session 变量

从表单传递的 php SESSION 变量

asp.net - 在 Visual Studio 2010 SP1 中使用 IIS Express 的问题

asp.net - 在单独的 Docker 容器中使用数据库时添加迁移会引发错误