c中session的用法
c中session的用法你知道嗎?下面小編就跟你們詳細介紹下c中session的用法,希望對你們有用。 c中session的用法如下: Session的基本屬性: 一、屬性 1、SessionID SessionID 屬性返回用戶的會話標識。在創建會話時,服務器會爲每一個會話生成一個單獨的標識。會話標識以長整形數據類型返回。在很多情況下 SessionID 可以用於 WEB 頁面註冊統計。 2、TimeOut Timeout 屬性以分鐘爲單位爲該應用程序的 Session 對象指定超時時限。如果用戶在該超時時限之內不刷新或請求網頁,則該會話將終止。 二、方法 Session 對象僅有一個方法,就是 Abandon,Abandon 方法刪除所有存儲在 Session 對象中的對象並釋放這些對象的源。如果您未明確地調用 Abandon 方法,一旦會話超時,服務器將刪除這些對象。當服務器處理完當前頁時,下面示例將釋放會話狀態。 < % don %> 三、事件 Session 對象有兩個事件可用於在 Session 對象啓動和釋放是運行過程。 1、Session_OnStart 事件在服務器創建新會話時發生。服務器在執行請求的頁之前先處理該腳本。Session_OnStart 事件是設置會話期變量的最佳時機,因爲在訪問任何頁之前都會先設置它們。 儘管在 Session_OnStart 事件包含 Redirect 或 End 方法調用的情況下 Session 對象仍會保持,然而服務器將停止處理 文件並觸發 Session_OnStart 事件的文件中的腳本。 爲了確保用戶在打開某個特定的 Web 頁時始終啓動一個會話,就可以在 Session_OnStart 事件中調用 Redirect 方法。當用戶進入應用程序時,服務器將爲用戶創建一個會話並處理 Session_OnStart 事件腳本。您可以將腳本包含在該事件中以便檢查用戶打開的頁是不是啓動頁,如果不是,就指示用戶調用 rect 方法啓動網頁。程序如下 : < SCRIPT RUNAT=Server Language=VBScript> Sub Session_OnStart startPage = "/MyApp/" currentPage = erVariables("SCRIPT_NAME") if strcomp(currentPage,startPage,1) then rect(startPage) end if End Sub < /SCRIPT> 上述程序只能在支持 cookie 的瀏覽器中運行。因爲不支持 cookie 的瀏覽器不能返回 SessionID cookie,所以,每當用戶請求 Web 頁時,服務器都會創建一個新會話。這樣,對於每個請求服務器都將處理 Session_OnStart 腳本並將用戶重定向到啓動頁中。 2、Session_OnEnd 事件在會話被放棄或超時發生。 關於使用 Session 對象需要注意的事項 Application 對象相近,請參照前文。 會話可以通過以下三種方式啓動 : 1、一個新用戶請求訪問一個 URL,該 URL 標識了某個應用程序中的 文件,並且該應用程序的 文件包含 Session_OnStart 過程。 2、用戶在 Session 對象中存儲了一個值。 3、用戶請求了一個應用程序的 文件,並且該應用程序的 文件使用 < OBJECT> 標籤創建帶有會話作用域的對象的實例。 如果用戶在指定時間內沒有請求或刷新應用程序中的任何頁,會話將自動結束。這段時間的默認值是 20 分鐘。可以通過在 Internet 服務管理器中設置“應用程序選項”屬性頁中的“會話超時”屬性改變應用程序的默認超時限制設置。應依據您的 Web 應用程序的要求和服務器的內存空間來設置此值。例如,如果您希望瀏覽您的 Web 應用程序的用戶在每一頁僅停留幾分鐘,就應該縮短會話的默認超時值。過長的會話超時值將導致打開的會話過多而耗盡您的服務器的內存資源。對於一個特定的會話,如果您想設置一個小於默認超時值的超時值,可以設置 Session 對象的 Timeout 屬性。例如,下面這段腳本將超時值設置爲 5 分鐘。 < % out = 5 %> 當然你也可以設置一個大於默認設置的超時值,out 屬性決定超時值。你還可以通過 Session 對象的 Abandon 方法顯式結束一個會話。例如,在表格中提供一個“退出”按鈕,將按鈕的 ACTION 參數設置爲包含下列命令的 文件的 URL。 < % don %> Session的用法: 一、使用Session設定權限 Session簡介: 簡單來說就是服務器給客戶端的一個編號。當一臺WWW服務器運行時,可能有若干個用戶瀏覽正在運正在這臺服務器上的網站。當每個用戶首次與這臺WWW服務器建立連接時,他就與這個服務器建立了一個Session,同時服務器會自動爲其分配一個SessionID,用以標識這個用戶的唯一身份。這個SessionID是由WWW服務器隨機產生的一個由24個字符組成的字符串。 Session的初次使用: protected void Page_Load(object sender, EventArgs e) {//這是頁面的初始化 if (!stBack) {//判斷是否爲初次執行 if (ls(Session["AdminName"], null)) {//判斷在Session["AdminName"]是否存在值 rect("", true); } else {//要是存在則記錄下這個人的用戶名 = Session["AdminName"]ring(); } } } 二、進行頁面傳值 在頁面之間傳遞信息有許多方式: 第一:可以使用QueryString 第二:可以使用Session 第三:sfer 這三種傳值方式都有利有弊,下面我以我的經驗給大家講解一下 首先:QueryString QueryString是一種非常簡單的傳值方式,其缺點就是會把要傳遞的值顯示在瀏覽器的地址欄中,並且此方法不能夠傳遞對象。如果你想傳遞一個安全性不是那麼重要或者是一個簡單的數值時。使用此方式最好不過。 下面通過一個小例子來說明一下 1.創建一個Web頁面,叫 2.在頁面內添加兩個TextBox,叫TxtName,TxtEmail,與一個Button,叫Submit protected void Submit_Click(object sender, EventArgs e) { String Url = " + + "&Email=" + ; rect(Url); } 3.再創建一個接收信息頁面,叫 4.在頁面內添加兩個Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) {//使用Request來接收由上個頁面傳遞過來的值,分別顯示在頁面上 = yString["Name"]; = yString["Email"]; } 再次:使用Session變量 使用Session變量傳值是一種最常見的方式了,此種方式不僅可以把值傳遞到下一個頁面,還可以交叉傳遞到多個頁面,直至把Session變量的值Remove後,才消失 下面舉例說明 1.創建一個頁面,叫SendSession 2.在頁面內添加兩個TextBox,叫TxtName,TxtEmail,添加一個Button,叫Submit protected void Submit_Click(object sender, EventArgs e) {//可以使用Session的Add方法 Session["Name"] = ; //可以使用("Name",); Session["Email"] = ; //可以使用("Email",); rect(""); } 3.再創建一個頁面,叫 4.在頁面內添加兩個Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) { = Session["Name"]ring(); = Session["Email"]ring(); Session["Name"]ve(); Session["Email"]ve(); //使用結束要清除Session中的值 } 這是使用Session傳遞數值,此方式耗費服務器的資源,儘量少使用 再次:使用sfer 這種傳遞方式有點複雜,但也可以是一種值傳遞方式 下面舉例說明一下: 1.創建一個頁面,叫 2.在頁面內添加兩個TextBox,叫TxtName,TxtEmail,添加一個Button,叫Submit protected void Submit_Click(object sender, EventArgs e) { sfer(""); } 再添加一個屬性 public String Name { Get { return ; } } public String Email { Get { return ; } } 3.再創建一個頁面,叫 4.在頁面放兩個Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) { //創建原始窗體的實例SendMessage wf1 //獲得實例化的句柄 wf1=(SendMessage)ler; =; =l; }