我对 VB 很老,但对 ASP.NET 很陌生
我在新网站上写了几本词典。问题是如果多个用户同时使用这些词典,一个用户会得到另一个用户的信息。
作为 ASP.NET 的新手,解决此问题的最佳方法是什么?会话状态或视图状态?我看错方向了吗?
我对 VB 很老,但对 ASP.NET 很陌生
我在新网站上写了几本词典。问题是如果多个用户同时使用这些词典,一个用户会得到另一个用户的信息。
作为 ASP.NET 的新手,解决此问题的最佳方法是什么?会话状态或视图状态?我看错方向了吗?
服务器端:
会话是特定于用户的,或者您可以说特定于浏览器。它不会在站点的所有用户之间共享。Session 可以保存任何对象数据类型。
Session["key"] = "value";
应用程序在站点上的所有用户之间共享。
Application["key"] = "value";
客户端:
ViewState 数据不会在用户之间共享,甚至不会在页面之间共享。它在回发期间保留数据。
ViewState["key"] = "value";
会话将保存特定于用户的信息,并持续到用户的浏览会话。ViewState 将保存特定于用户当前浏览的页面上的控件的信息。
如果您想存储特定于用户的信息并且需要在他们浏览网站时保留在他们身边,那么 Session 是一个很好的解决方案。
如果您想访问User
诸如姓名、姓氏、...等信息之类的数据,Session
是最佳选择,因为此数据不会为当前用户更改。但是如果你想在一个变量中存储一个值,你应该考虑并发问题。例如,如果你有一个带有简单按钮和文本框的页面,在单击存储在其中的按钮文本框值后Session
,如果用户打开该页面的 2 个实例那么就会有一个会话冲突。每个按钮点击都会覆盖写入会话数据。如果您想将变量存储在可以使用的页面中,ViewState
但您应该考虑用户可以轻松看到此值。如果您想保护值,您应该使用View State Encryption
. 如果你想在页面之间传递值,你可以使用Query String
祝你好运