C# 如何在ASP.NET中定义与会话变量相似的变量

C# 如何在ASP.NET中定义与会话变量相似的变量,c#,asp.net,C#,Asp.net,我想定义一个变量或对象,比如会话,来存储每个用户的数据,我想在许多页面中访问这个对象, 你能告诉我有没有办法吗。 谢谢您可以将数据存储在cookie中,然后在codebehind中将特定cookie解析为类似System.Collections.Generic.Dictionary的内容 但是你应该使用会话 编辑 如果是KeyValuePair可以设置Session[kvp.Key]=kvp.Value,如果不是会话[“KVP”]=KVP你只有几个选择,真的。URL参数、隐藏的表单输入、cook

我想定义一个变量或对象,比如会话,来存储每个用户的数据,我想在许多页面中访问这个对象, 你能告诉我有没有办法吗。
谢谢

您可以将数据存储在cookie中,然后在codebehind中将特定cookie解析为类似System.Collections.Generic.Dictionary的内容

但是你应该使用会话

编辑


如果是
KeyValuePair
可以设置
Session[kvp.Key]=kvp.Value,如果不是
会话[“KVP”]=KVP

你只有几个选择,真的。URL参数、隐藏的表单输入、cookie、会话(在负载平衡的情况下要小心)或者只是从数据库中存储/检索内容。RaveDB在这方面非常出色,因为它速度非常快且基于文档。

如果你真的不想使用会话使用数据库,请记住这是一种缓慢的方法…

我曾经遇到过一些情况,我想最小化/消除会话存储(由于用户使用了糟糕的wifi连接)。为了处理这种情况,我使用了一个加密的查询字符串,字符串中只有它们的ID。在基本页面中,我将解密字符串并从数据库中提取所需的信息。此信息将填充到我定义的对象中,由于对象位于基页中,我可以从继承它的任何页面访问信息。

为什么不使用会话?您要使用的是
会话
变量。因为我要存储keyValuePair,我想用一个对象为它的类提供一些有用的方法来帮助我later@Sum:
Session[“X”]=您的\u KeyValuePair\u变量
Session[“您的\u Helper”]=新的\u Helper\u类()
也可以工作-至少在进程会话模式下可以。你在使用其他的会话模式吗?据我所知没有,只是因为你通常不需要这个。有一个已完成的解决方案,为什么要构建另一个。我认为会话可能是您所需要的。请注意,如果您开始持久化会话状态(例如在负载平衡的场景中),可能会出现问题。