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