2011-03-26 85 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