2011-03-26 57 views
0

我的web应用程序有一个奇怪的问题。我想知道我什么时候在会话变量中存储值,如会话在asp.net/c#

Session["UserName"] = UserNameTextBox.Text 

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

感谢预期

回答

2

它将被分配给该用户的唯一ID 。当用户第一次访问您的网站时,他们将被分配一个唯一的“会话ID”,通常这是一个存储在他们的Web浏览器中的cookie,但是如果您配置了它,您还可以在URL中设置会话ID Cookie被禁用。

这个唯一的会话ID是指用户在服务器端的“会话”。当您使用发布的代码时,会为该用户的会话添加(或更新,如果该用户已存在)数据,并在会话仍处于活动状态时进行存储,以便以后检索。您可以阅读这个变量并尽可能多地写出它,并且它始终是该用户特有的。

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

2

无论你在会议店将只提供给当前用户。您网站的每个用户都会获得不同的会话ID,并使用cookie发送此ID,以便服务器可以识别用户。正如@Brad Christie在评论部分指出的,如果cookies被禁用,您可以将会话配置为使用隐藏字段或将该ID作为url的一部分发送。

+0

要注意,它不必是一个cookie。有时它在URL中,例如mysite.com/(S())/ Default.aspx – 2011-03-26 14:44:31

+0

@Brad Christie,好点,我已经更新了我的答案以包含它。 – 2011-03-26 15:22:20