Net中Session的用法

一、什么是Session?

簡單來說,就是用戶與網站服務器建立的一個連接,服務器分配給一個編號。當一臺WWW服務器運行時,可能有若干用戶正在瀏覽運行在這臺服務器上

的網站。當用戶首次與這臺WWW服務器創建連接的時候,它就和這臺服務器建立了一個Session,同時服務器會自動為其分配一個SessionID,用來標識

這個用戶的唯一身份,也就是不同的客戶端會生成不同的Session對象。存儲在對話狀態變量中的數據,存在的周期相對較短。實際上SessionID

是由WWW服務器隨機產生的一個由24個字符組成的字符串。

二、Session的具體使用

1、Web.Config文件中的Session配置

mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

cookieless="false" timeout="20" ?/>

2、必須包含的屬性定義

mode:設置將Session信息存儲到哪里,有四種方式:

Off:設置不使用Session功能。

InProc :將Session存儲在IIS進程內,這是默認值,也最常用(優點是簡單,性能最高。但是當重啟IIS服務器時Session丟失。);。

StateServer :將Session存儲在ASP.NET狀態服務進程中(重新啟動Web應用程序時保留會話狀態,并使會話狀態可以用于網絡中的多個Web服務器)。

SQLServer :將Session存儲在SQL Server中(存儲在內存和磁盤中,服務器掛掉重啟后都還在)。

3、可選屬性的定義

cookieless:獲取或設置一個值,該值指示是否使用 cookie 來標識客戶端會話。

true 如果所有的請求會為無 cookie,或 false 如果沒有請求會為無 cookie,或其中一個 HttpCookieMode 值。

ASP.NET 2.0 版中的默認值是 AutoDetect。 在早期版本中,默認值是 false。

timeout:設置經過多少分鐘后服務器自動回收Session信息,默認為20分鐘

stateConnectionString:在遠程存儲會話狀態時,此屬性指定服務器名稱和端口。 stateConnectionString 時,屬性是必選項 Mode 設置為 StateServer。

sqlConnectionString:設置為sqlConnectionString 時,屬性是必選項 Mode 設置為 SQLServer。

stateNetworkTimeout:獲取或設置 Web 服務器和狀態服務器之間的網絡連接可以保持空閑的時間量。

屬性值:

Type: System.TimeSpan

以秒為單位,Web 服務器和狀態服務器之間的網絡連接可保持空閑狀態,放棄該會話前的時間。 默認值為 10 秒。

設置為 sessionStateSection 時,屬性是必選項 Mode 屬性設置為 StateServer。

3、Session用法示例

例如:Session["userName"]="小明";//存儲信息

string name=session["userName"];//取值

Session。Clear();//從Session狀態集合中移除所有的鍵和值

Session.Abandon();//取消當前Session會話

三、Session的運行原理圖解

4418040-ef1592011530acf8

四、Session與Cookie的區別

1、cookie存客戶端,session存服務端。

2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙。

3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能考慮到減輕服務器性能方面,應當使用COOKIE。

4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

五、常見的Session超時和丟失的情況以及解決方法

1、服務器內存補充導致Seesion丟失;解決方法:IIs設置Session超時時間,重新設置會話時間,默認為20 min。

2、殺毒軟件掃描Web.cofig;解決方法:設置殺毒軟件不掃描Web.cofig配置文件。

3、程序內部有讓Session丟失的代碼;解決方法:檢查代碼處理。

4、程序有框架頁面和跨域情況;解決方法:在Window服務中將ASP.NET State Service 啟動。

歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺

閱讀原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272790.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272790.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272790.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于Json的總結

一、什么是Json?JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一個子集。 JS…

java 整數溢出檢測,Java如何處理整數下溢和溢出以及如何檢查它?

How does Java handle integer underflows and overflows?Leading on from that, how would you check/test that this is occurring?解決方案If it overflows, it goes back to the minimum value and continues from there. If it underflows, it goes back to the maximum…

console 程序隨系統啟動及隱藏當前程序窗口

應業務需求,程序需要與系統啟動而自動運行,故加入以下代碼,保存成 .bat文件 ,雙擊執行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v HuazhuPushRecord /t reg_sz /d "your…

Linq用法筆記

一、什么是Linq?LINQ即Language Integrated Query(語言集成查詢),LINQ是集成到C#和Visual Basic.NET這些語言中用于提供查詢數據能力的一個新特性。LINQ是一種用來進行數據訪問的編程模型,Linq可以用相同的語法訪問不同的數據源,比如xml、數…

用例圖練習

轉載于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java excel row遍歷空_Java poi讀取,寫入Excel,處理row和cell可能為空的情況

首先需要導入包import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;然后寫方法&a…

JQuery常用選擇器總結

作為網站開發者來說,不可避免的需要和頁面打交道,很多時候都需要去操作一些頁面上的元素,掌握常用的Jquery選擇器是十分有必要的。現從網上整理一些常用的Jquery選擇器,希望能給大家帶來一些開發上的便利。一、基本選擇器&#xf…

java 常量 內存分配_Java內存分配之堆、棧和常量池

寄存器:最快的存儲區,位于不同于其他存儲區的地方——處理器內部。寄存器的數量極其有限,所以寄存器由編譯器根據需求 進行分配。你不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象。棧:存放基本類型的數據和對…

三種SQLServer分頁查詢語句筆記

作為程序員來說,與數據庫打交道是十分頻繁的分頁查詢是一個開發者必須掌握的基本知識點,目前整理了下面三種SQLServer分頁查詢語句的寫法,僅供參考。一、Top Not IN 方式(查詢靠前的數據較快)語法格式:sele…

sqlserver2008r2安裝

轉載于:https://www.cnblogs.com/sprinng/p/4932739.html

JQuery七個常犯的錯誤

1、 亂用選擇器JQuery選擇器調用代價很大,反復調用效率更低。應采用緩存對象的方法或采用鏈式調用的方式。//錯誤的寫法$("#button").click(function(){ $(#list li).addClass(strong); $(#list li).css(color,red);});//正確的寫法$("#button…

java流讀取xml_使用FileInputStream(用于Java)讀取XML文件?

這是交易.對于我的項目,我必須使用Java和XStream對隨機樹進行序列化和反序列化.我的老師制作了Tree / RandomTree算法,所以我不必擔心.我不知道該怎么做是這樣的:我使用FileInputStream來讀/寫我序列化和反序列化的xml文件,但是當我反序列化時,我不知道用于讀取文件…

后臺尋路系統的大體思路與流程

總的思路就是: 1, 通過前臺unity的navigation的的接口: 獲得頂點和三角形集合數據 2, 將前臺的mesh數據轉換成標準的obj格式數據 3. 強obj mesh數據經過一系列轉換和優化, 生成recastnavigation插件尋路模塊detour需要的導航數據 故制作了工具MakeNavmeshData生成detour需要的…

關于WCF、WebAPI、WCFREST、WebService之間的區別總結

在.net平臺下,有大量的技術讓你創建一個HTTP服務,像Web Service,WCF,現在又出了Web API。在.net平臺下,你有很多的選擇來構建一個HTTP Services。我分享一下我對Web Service、WCF以及Web API的看法。一、Web Service1、…

java 程序是由什么組成的 java_從零開始的JAVA -2. java程序的構成及命名規則

1.public classYD2.{3. public static voidmain (string args[ ])4. {5. System.out.println("我是一名學習JAVA的新人!");6. }7.}第一行 public 代表這是一個公共類(可省略) class 是聲明一個類,在他后面的YD 就是類名(類名可以隨意寫)第二行…

你應該知道的jQuery技巧【收藏】

jQuery的存在,讓學習前端開發的人感到前端越來越容易入門了,用簡單的幾行代碼就可以實現需求,但是,你真的會用jQuery么,當代碼運行 后無法看到自己預期的效果,是不是覺得jQuery出了問題,其實&am…

LINQ表達式用法整理

收集一些Linq表達式中的一些比較常用的寫法,希望能給大家工作當中帶來一些便利。1. Where子句條件過濾結果集型(集合數據使用這種,譬如數組、列表數據,同樣適用于Datatable等多列數據集)類SQL語句的寫法,對…

Eclipse is running in a JRE, but a JDK is required 解決方法(轉)

轉自:http://comeonbabye.iteye.com/blog/1186239 安裝Maven后每次啟動出現警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分兩步解決問題: 1. 檢查Eclipse正…

java線程歸并排序_Java-歸并排序 - FeanLau的個人空間 - OSCHINA - 中文開源技術交流社區...

public class MergeSort {static int number0;public static void main(String[] args) {int[] a {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };printArray("排序前:",a);MergeSort(a);printArray("排序后:",a);}private static voi…

收集一些優秀的DoNet開源項目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一個讀寫Json效率比較高的.Net框架.Json.Net 使得在.Net環境下使用Json更加簡單。通過Linq To JSON可以快速的讀寫Json,通過JsonSerializer可以序列化你的.Net對象。讓你輕松實現.Net中所有類型(對象,基…