国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Session詳解、ASP.NET核心知識(8)

2019-11-17 02:02:44
字體:
供稿:網(wǎng)友

session詳解、asp.net核心知識(8)

介紹一下Session

1.作用

Cookie是存在客戶端,Session是存在服務(wù)器端,目的是一樣的:保存和當(dāng)前客戶端相關(guān)的數(shù)據(jù)(當(dāng)前網(wǎng)站的任何一個(gè)頁面都能取到Session)。

在本篇博文的姊妹篇《Cookie詳解》中,黑兔在最后說了幾點(diǎn)Cookie的缺陷,簡單的說就是無法存儲重要數(shù)據(jù)。那么關(guān)乎重要數(shù)據(jù)的狀態(tài)如何存儲?Cookie妹妹Session講給你一個(gè)很好的答案。

2.醫(yī)生的賬本

需要一種“服務(wù)器端的Cookie”:醫(yī)生需要一個(gè)私人賬本,記錄病人編號和身份的對應(yīng)關(guān)系。由于身份證無法造假,所以能夠保證信息不被假冒。(身份證無法造假,這個(gè)身份證就可以唯一標(biāo)識這個(gè)用戶;)核心信息放到服務(wù)器上,客戶端無法去篡改。這就是Session的大體原理。

3.IRequiresSessionState

Cookie不能存儲機(jī)密數(shù)據(jù)。要使用ASP.Net已經(jīng)內(nèi)置的Session機(jī)制。普通的HttpHandler要能夠操作Session,要實(shí)現(xiàn)IRequiresSessionState接口,這個(gè)接口是沒有任何方法的“標(biāo)記接口”,因?yàn)閟ession處理會稍微降低系統(tǒng)性能,所以 HttpHandler 默認(rèn)不處理Session,asp.net引擎如果看到ashx實(shí)現(xiàn)了IRequiresSessionState,則幫咱們處理。

4.自毀裝置

Session有自動(dòng)銷毀機(jī)制,如果一段時(shí)間內(nèi)瀏覽器沒有和服務(wù)器發(fā)生任何的交互,則Session會定時(shí)銷毀。這也就是為什么一段時(shí)間不操作,系統(tǒng)就會自動(dòng)退出。

當(dāng)然Session也可以手動(dòng)設(shè)置銷毀,比如做安全退出的功能。就需要用到。 context.Session.Abandon();//銷毀Session

5.自毀倒計(jì)時(shí)

在web.config的system.web節(jié)點(diǎn)下配置sessionState節(jié)點(diǎn)的timeout,單位是分鐘,默認(rèn)是20(也只是一個(gè)建議,也許服務(wù)器10分鐘的時(shí)候就讓Session失效了)

.NET中如何使用Session

1.Session中可以存放任意類型

1      //Cookie 的值是String2      //Session的值可以是幾乎任何類型3      context.Response.ContentType = "text/html";4      context.Session["test1"] = "HelloWorld";5      context.Session["test2"]=888;

2.登錄案例

這個(gè)案例意圖在演示Session的使用,而絕對不是真的登錄,項(xiàng)目中這樣寫,肯定被打死。。。

1)Login頁面

 1         //一個(gè)比較好的小習(xí)慣,吧Session的名字設(shè)置成一個(gè)常量字段, 2         //以后可以直接引用這個(gè)字段,防止寫錯(cuò)。 3         public const string LOGINUSERNAME = "LoginUserName"; 4         public void PRocessRequest(HttpContext context) 5         { 6             context.Response.ContentType = "text/html"; 7             string username = context.Request["username"]; 8             string passWord = context.Request["password"]; 9             if (password == "123")10             {11                 context.Session[LOGINUSERNAME] = username;12                 context.Response.Redirect("Main.ashx");13             }14             else15             {16                 context.Response.Write("密碼錯(cuò)誤");17             }18         }

2)需要登錄才能看到的頁面

 1  public void ProcessRequest(HttpContext context) 2         { 3             context.Response.ContentType = "text/html"; 4             string username = (string)context.Session[Login1.LOGINUSERNAME]; 5             if (username == null) 6             { 7                 context.Response.Redirect("login.html"); 8             } 9             else if (username == "admin")10             {11                 context.Response.Write("哇,老大好!");12             }13             else14             {15                 context.Response.Write("當(dāng)前登錄用戶名"+username+"沒有權(quán)限查看");16             }17         }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久治县| 慈利县| 邯郸县| 台中市| 游戏| 固始县| 廉江市| 屏山县| 普定县| 文成县| 广汉市| 古浪县| 乌海市| 三河市| 松溪县| 光山县| 翁牛特旗| 灵川县| 新干县| 石城县| 潞城市| 察隅县| 乐安县| 石河子市| 句容市| 中西区| 老河口市| 固始县| 临颍县| 民县| 遂川县| 葫芦岛市| 长治县| 丹寨县| 孟津县| 淮北市| 宜良县| 腾冲县| 堆龙德庆县| 和顺县| 密山市|