您好,登錄后才能下訂單哦!
ASP.NET中Session如何使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Session 的管理,我們傳統的asp 程序其實是一種 dead 的Session 聯結,系統其實在我們的客戶端書寫了一個Cookie,當我們把我們瀏覽器的 安全設置中的 Cookie 設置成 Prompt 的時候,當我們訪問一個有Session 的頁面的時候,就會出現一個是否允許Cookie 的提示,當設置成為 不允許 Cookie 的時候,我們的Session 總是不能成功.例如:
﹤% Session("username")="豆腐" Session("URL")="http://www.asp888.net" %﹥
在ASP.NET 的環境中,ASP.NET Session使用的情況是被完全的重新進行了定義,由于豆腐現在的ASP.NET 的環境是PDC 版本的,所以,沒有對Beta1 版本進行Demo,我在這里如果涉及到 Beta1 的內容,都是僅僅是材料上介紹的,沒有經過豆腐的測試
其實,對于一些不愿意深究的同志們,豆腐 說:其實 ASP.NET Session使用方法和ASP Session使用的使用方法完全相同,甚至更為簡單,因為 根據豆腐 的觀察,我們根本不用繼續 去考慮 客戶端 的cookie 選項 的狀態,因為不管客戶端的設置如何,Session都可以順利的傳遞
下面我們就對ASP.NET Session使用機制進行一些簡單的深入了解,限于技術,我有的問題也不是很清楚,所以歡迎大家一同來探討 這個 文章
在PDC 版本中,我們打開 %systemroot%\complus\(version)\config.web 文件,我們找到 Sessionstate可以看到以前的內容:
﹤Sessionstate inproc="true" usesqlserver="false" cookieless="false" timeout="20" server="localhost" port="42424" /﹥
當 inproc 為True 的時候,ASP.NET 將采取一種稱為 in-process 的機制,將Session 的數據保存在這一臺服務器上,如果inproc 和usesqlserver 同時為 false ,則采取一種 out process 的機制,將Session 存儲在 一臺 專門用來保存Session 的服務器上,這樣就可以解決當訪問 一個站點的 不同主機的時候,Session 的共享,這個以前在ASP中絕對是不可能的.在 Beta1 的版本上 config.web 改變了很多,我們簡單的看一下:
﹤!-- Sessionstate attributes: mode = "inproc" | "sqlserver" | "stateserver" cookieless = "true" | "false" timeout = ﹤Session timeout in minutes, a whole number greater than 0﹥ sqlconnectionstring = ﹤acceptable values for SQLConnection.ConnectionString, only used when mode="sqlserver"﹥ server = ﹤server name, only used when mode="stateserver"﹥ port = ﹤port number, only used when mode="stateserver"﹥ --﹥
關于 config.web 文件的Session 部分我們就先說到這里,下面我們來看看 cookieless 的問題:
這個Cookieless 不是我們平常理解的是否在 客戶端 保存Cookie 根據豆腐的觀察,ASP.NET的Session
是不會在 瀏覽器客戶端生成任何的cookie的
我們首先把 cookieless 設置成為 false 的時候,我們來看看這個程序
﹤%@ Page Language="VB" %﹥ ﹤%Session("name")="豆腐"%﹥ ﹤%=Session("name")%﹥
程序執行結束后,我們沒有從瀏覽器得到任何的 提示,雖然我們也使用到了Session當我們 把 cookieless 設置成為 true 以后,再次運行這個程序,我們發現 程序仍然是正確的執行,但是瀏覽器的地址欄發生了一些變化,我們以前是
http://host/testSession.aspx 現在變成了 http://host/(包含有很多字符串的內容)/testSession.aspx豆腐估計這是 因為 這個Session 甚至在 服務器上也沒有 生成Cookie 的原因,只好用 (包含有很多字符串的內容)的內容來保存Session的內容了
當我們將inproc 和 usesqlserver 都設置成為 false 表示我們將使用 out process 這個時候,我們就要指定server 的name 這個server 就是同意保存 Session 的 服務器,我們需要在這個服務器上將asp state 的服務啟動
當我們需要使用 sql server 的時候,我們必須填寫 sql server的連接字符串,這樣 Session 就會被保存到sql server 的一個database ,當然這個database 是要生成的,,不過在PDC版本中,我沒有找到這個database 的安裝文件。
關于ASP.NET中Session如何使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。