2011-06-08 119 views
3

我剛剛獲得了一項新任務來引導其他人創建的網站。但我對網絡絕對陌生。該網站在ASP.NET,C#中。除了Session對象之外,代碼本身並不難理解。我不明白在哪裏,如何以及爲什麼使用它。可以請某人解釋Session對象的使用情況並舉例說明嗎?在ASP.NET中使用會話對象

P.S.這兩條線意味着什麼?

lblPensValue.Text = sh.pensDec((string)Session["connSTR"], 113, 23); 
and 
    if ((string)Session["connSTR"] == null) 

回答

6

Session用於在網站上存儲用戶會話的數據。 (該數據存儲是每個用戶瀏覽器會話,並且隨時可能被各種應用事件擦除)

它通常用於在用戶會話(即訪問)中跨多個頁面視圖存儲信息,到您的網站。

它可以在用戶會話的上下文中運行的代碼中的任何位置使用;意思是在頁面內部,或者在會話環境中運行的適當的應用程序生命週期事件中(例如會話開始)

至於你的樣品;

第一個,我不能完全解釋,因爲我不知道函數sh.pensDec()應該做什麼。

第二個是在運行下面的代碼之前檢查以確保在該會話變量中存儲了一個值。

+0

小,但很重要的一點:不能訪問會話在'BeginRequest'事件處理程序。在'PostAcquireRequestState'事件發生之前,會話將不可用。 – 2013-05-15 13:37:04

+0

@PatrickM好點;糾正! – 2013-05-15 19:19:16

5

HTTP本質上是無狀態的。 WebServer在處理請求併發送回客戶端後不知道任何細節。因此,任何後續請求都像是對服務器的新請求。

爲了使服務器能夠記住&隨後承認它提供給客戶端,ASP.NET使用各種機制,其中Session就是其中之一。

會話是爲每個用戶創建的。所以,在你的頁面中,你正在獲取「connSTR」正在存儲它。每當隨後的請求來自同一用戶時,通過查詢會話的密鑰

Session["connSTR"] 

您會收回其值。由於Session是一個對象,因此它在您的代碼中作爲字符串進行轉換。