asp.net/c#中的会话

时间:2011-03-26 14:21:06

标签: asp.net session

我的网络应用程序存在一个奇怪的问题。我想知道何时将值存储在会话变量中,如

Session["UserName"] = UserNameTextBox.Text

是否存在与此特定会话变量分配相关联的唯一ID?

感谢您的期待

2 个答案:

答案 0 :(得分:2)

您在会话中存储的内容仅适用于当前用户。您站点的每个用户都会获得不同的会话ID,并且此ID将与cookie一起发送,以便服务器可以识别用户。正如@Brad Christie在评论部分所述,如果禁用了cookie,您可以将会话配置为使用隐藏字段或将ID作为网址的一部分发送。

答案 1 :(得分:2)

将为该用户分配一个唯一的ID 。当用户首次访问您的站点时,他们将被分配一个唯一的“会话ID”,这通常是存储在其Web浏览器上的cookie,但如果您配置它,您还可以在URL中设置会话ID(如果他们有)饼干被禁用。

此唯一会话ID是指服务器端用户的“会话”。当您使用类似于您发布的代码时,数据将添加(或更新(如果已存在)到该用户的会话,并在会话仍处于活动状态时存储,以便您以后可以检索它。您可以阅读此变量并根据需要编写它,并且它始终是特定于该用户的。

值得注意的是,Session变量到期。通常,IIS / Web.config将此限制设置为20分钟。如果用户在您的站点上没有做任何事情20分钟(或您指定的时间),那么为了节省服务器资源,该用户的会话将被删除。如果您需要保持会话处于活动状态,只要用户打开一个页面(例如,如果用户填写表单并且可能需要超过20分钟),您将需要查看类似{{3}的内容这是简单的AJAX调用,只是告诉服务器让会话保持活动状态,而不是在20分钟后删除它。