日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

在Web Service中使用ASP.net狀態(tài)保持(1)_Windows教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
 

簡(jiǎn)介

  有許多聰明的辦法可以解決HTTP協(xié)議的無(wú)狀態(tài)問(wèn)題,例如對(duì)每個(gè)請(qǐng)求重復(fù)發(fā)送應(yīng)用程序數(shù)據(jù)包、使用HTTP認(rèn)證機(jī)制來(lái)將請(qǐng)求映射到特定的用戶、使用Cookie來(lái)存儲(chǔ)一系列請(qǐng)求的狀態(tài)等。在ASP.net技術(shù)中提供了一個(gè)非常有效的方案來(lái)保持狀態(tài),該方案隱藏了所有高難度的,具有挑戰(zhàn)性的工作的細(xì)節(jié),用戶只需簡(jiǎn)單地使用System.Web.SessionState.HttpSessionState類。同時(shí),你也可以像在ASP.net程序地Web頁(yè)面(.aspx)中一樣在Web Service的方法中使用這個(gè)類,只有一點(diǎn)小小的不同。

ASP.net的Session對(duì)象概述

  ASP.net的Session狀態(tài)信息在根本上通過(guò)兩個(gè)機(jī)制保持。其一是使用Cookie。當(dāng)客戶端發(fā)送一個(gè)請(qǐng)求到服務(wù)器端時(shí),服務(wù)器將發(fā)回一個(gè)附加HTTP Set-Cookie頭的響應(yīng)信息,而Cookie的值就是以鍵/值對(duì)的形式保存在該信息里邊。在對(duì)同一服務(wù)器的所有的同步請(qǐng)求中,客戶端在HTTP Cookie頭中發(fā)送Cookie鍵/值對(duì)。然后服務(wù)器可以將并發(fā)的請(qǐng)求同初始的請(qǐng)求對(duì)應(yīng)起來(lái)。ASP.net使用一個(gè)保存會(huì)話的ID的cookie來(lái)保持會(huì)話狀態(tài)。該ID標(biāo)識(shí)被用來(lái)為特定的用戶找到與其對(duì)應(yīng)的HttpSessionState類的實(shí)例。類HttpSessionState僅僅提供了一個(gè)通用的數(shù)據(jù)集,你可以在其中保存你需要的任何信息。

  ASP.net用來(lái)保持狀態(tài)的另外一個(gè)機(jī)制工作時(shí)無(wú)須使用Cookie。一些瀏覽器被用戶設(shè)置為禁止使用cookie或者干脆就不支持Cookie,ASP.net提供了一種機(jī)制來(lái)解決這個(gè)問(wèn)題,它的主要原理是將一個(gè)請(qǐng)求重定向到一個(gè)包含ASP.net狀態(tài)ID的URL。當(dāng)該請(qǐng)求被接受到時(shí),這個(gè)嵌在URL中的ID被截取下來(lái),服務(wù)器通過(guò)該ID找到合適的HttpSessionState類的實(shí)例。這種方式在HTTP協(xié)議的使用GET方式的請(qǐng)求中工作的很好,但是在.net的XML Web Service代碼中會(huì)出現(xiàn)問(wèn)題。

  必須指出的是,有些時(shí)候把信息直接存儲(chǔ)在Cookie中要比存儲(chǔ)在Session中更好。避免使用Session可以節(jié)省服務(wù)器資源,而且你也無(wú)須考慮一些煩人的問(wèn)題,比如定位一個(gè)特定的Session對(duì)象、Session對(duì)象因?yàn)檎?qǐng)求的長(zhǎng)時(shí)間的延遲而被移除或者在服務(wù)器上沒(méi)必要地保留直到過(guò)期。然而,如果你有一些包含你不希望與你提供的服務(wù)的使用者共享的執(zhí)行信息,或者有一些你不希望通過(guò)未加密的信道傳輸?shù)乃接袛?shù)據(jù),或者你認(rèn)為將這些數(shù)據(jù)插入HTTP協(xié)議頭中是不切實(shí)際的,那么你就應(yīng)該使用ASP.net中的HttpSessionState,它將使你輕松解決這些問(wèn)題。HttpSessionState類返回一個(gè)索引鍵,用以將一個(gè)特定的用戶映射到一個(gè)為該用戶保存信息的HttpSessionState類的實(shí)例�?傊�,無(wú)論是ASP.net的HttpSessionState類還是HTTP的Cookie都可以在ASP.net Web Service中使用。


在XML Web Service中使用基于HTTP的機(jī)制來(lái)實(shí)現(xiàn)狀態(tài)保持的理由

  在SOAP請(qǐng)求中有許多方法來(lái)保持狀態(tài)。一個(gè)切實(shí)可行的方法就是在SOAP頭中包含一些像ASP中的會(huì)話ID的信息,然而問(wèn)題在于你不得不:
  1) 仍然要自己編寫(xiě)服務(wù)器端代碼。
  2) 確信你的客戶會(huì)像對(duì)待HTTP Cookie一樣對(duì)待你的包含會(huì)話ID的SOAP頭并且將它附加到每個(gè)請(qǐng)求中回傳給你。
  當(dāng)然有很多時(shí)候使用SOAP頭的方法會(huì)很方便,但是也有很多時(shí)候還不如使用基于HTTP協(xié)議的方法。

來(lái)源:網(wǎng)絡(luò)搜集//所屬分類:Windows教程/更新時(shí)間:2013-04-15
相關(guān)Windows教程