HttpSessionState.SessionID 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得該會話的唯一識別碼。
public:
property System::String ^ SessionID { System::String ^ get(); };
public string SessionID { get; }
member this.SessionID : string
Public ReadOnly Property SessionID As String
屬性值
唯一的會話識別碼。
範例
以下程式碼範例展示了一個 Web.config 檔案,該檔案將會話狀態設定為無 Cookie 會話識別碼。 如需詳細資訊,請參閱 IsCookieless 屬性 (Property)。
<configuration>
<system.web>
<sessionState
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
備註
此 SessionID 屬性用於唯一識別伺服器上有會話資料的瀏覽器。 該 SessionID 值由 ASP.NET 隨機產生,並儲存在瀏覽器中的無過期會話 cookie 中。 每次請求時,該 SessionID 值會以 cookie 形式傳送給 ASP.NET 應用程式。
如果你想在 ASP.NET 應用程式中停用 cookie,但仍使用會話狀態,你可以將應用程式的 session 識別碼儲存在 URL 中,而非 cookie,方法是將 cookielesssessionState 設定元素的屬性設 true為 ,或在 UseUri應用程式的 Web.config 檔案中 ,將 。 你可以 ASP.NET 透過設定屬性的值UseDeviceProfilecookieless來判斷瀏覽器是否支援 Cookie。 你也可以讓 ASP.NET 透過屬性指定 的AutoDetectcookieless值來判斷瀏覽器是否啟用了 Cookie。 若 在指定時支援 UseDeviceProfile Cookie,或在指定時啟用 AutoDetect ,則會話識別碼會儲存在 Cookie 中;否則會話識別碼會儲存在 URL。 如需詳細資訊,請參閱 IsCookieless 屬性 (Property)。
這些訊息 SessionID 會在伺服器與瀏覽器之間以明文形式傳送,無論是透過 Cookie 或網址。 因此,不想要的來源可能會透過取得 SessionID 該值並將其納入伺服器請求,從而取得其他使用者的會話存取權。 如果你在會話狀態下儲存私人或敏感資訊,建議使用 SSL 來加密瀏覽器與伺服器 SessionID之間包含 的通訊。
使用 cookie 基礎會話狀態時,ASP.NET 在物件被使用前 Session 不會為會話資料分配儲存空間。 因此,每個頁面請求都會產生一個新的會話 ID,直到會話物件被存取為止。 如果你的應用程式需要整個會話的靜態 Session ID,你可以在應用程式的 Global.asax 檔案中實作此 Session_Start 方法,並將資料存入 Session 物件中以修正會話 ID,或者你可以在應用程式的其他部分使用程式碼,明確地將資料存入物件 Session 中。
若應用程式使用 Cookieless 會話狀態,會話 ID 會在首頁檢視產生,並維持整個會話。