來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-05-01 18:42:06
默認(rèn)情況下,forms authentication system將決定是將票據(jù)存儲(chǔ)在cookies collection里還是插入用戶(hù)訪問(wèn)頁(yè)面的URL里。所有主流的桌面瀏覽器,比如Internet Explorer,F(xiàn)irefox,Opera,或Safari都支持cookies,但并非所有的移動(dòng)設(shè)備都支持。
forms authentication system使用何種cookie策略,取決于元素里的cookieless設(shè)置,它可以有如下四種配置:
.UseCookies——指定總是使用基于cookie的票據(jù)
.UseUri——指定從不使用基于cookie的票據(jù)
.AutoDetect——如果device profile不支持cookies,就不使用基于cookie的票據(jù);如果device profile支持cookies,那么就運(yùn)用一種探測(cè)機(jī)制來(lái)判斷是否可以使用cookies.
.UseDeviceProfile——這是默認(rèn)值,如果device profile支持cookies,就使用基于cookie的票據(jù),不運(yùn)用探測(cè)機(jī)制。
其中,AutoDetect 和 UseDeviceProfile選項(xiàng)都依靠一個(gè)device profile來(lái)判斷是使用基于cookie還是無(wú)cookie的票據(jù)。ASP.NET有一個(gè)關(guān)于這種devices及其性能的數(shù)據(jù)庫(kù),比如某種devices是否支持cookies,它支持那個(gè)版本的JavaScript等信息。每次,當(dāng)一個(gè)device向服務(wù)器發(fā)出對(duì)某個(gè)頁(yè)面的請(qǐng)求時(shí),該請(qǐng)求里將包含一
個(gè)名為“user-agent”的HTTP header,用于表明device的類(lèi)型。ASP.NET將自動(dòng)的把提供的user-agent字符串與數(shù)據(jù)庫(kù)里相應(yīng)的信息匹配起來(lái)。
注意:
該數(shù)據(jù)庫(kù)存儲(chǔ)在很多的XML文件里.這些默認(rèn)的device profile文件,其路徑為%WINDIR%Microsoft.NetFrameworkv2.0.50727CONFIGBrowsers。你也可以在你應(yīng)用程序的App_Browsers文件夾里添加自定義的文件,關(guān)于這方面的更多信息,請(qǐng)參閱文章《How To: Detect Browser Types in ASP.NET Web Pages》
由于默認(rèn)使用的是UseDeviceProfile選項(xiàng).當(dāng)訪問(wèn)站點(diǎn)的某個(gè)device不支持cookies時(shí),就站點(diǎn)就使用無(wú)cookie的票據(jù).
在URL里對(duì)票據(jù)進(jìn)行編碼
當(dāng)瀏覽器每次向某個(gè)站點(diǎn)發(fā)出請(qǐng)求時(shí),用來(lái)存儲(chǔ)信息的載體通常是Cookies。但如果訪問(wèn)站點(diǎn)的device不支持Cookies的話(huà),我們必須使用某種方法在客戶(hù)端和服務(wù)器端傳遞票據(jù),通常的做法是在URL里將cookie數(shù)據(jù)編碼。
為了進(jìn)行演示,我們將強(qiáng)迫站點(diǎn)使用無(wú)cookie的票據(jù),為此我們將采用UseUri:
做了上述修改后,通過(guò)瀏覽器訪問(wèn).當(dāng)以匿名用戶(hù)進(jìn)行訪問(wèn)時(shí),URL看起來(lái)和以前沒(méi)什么區(qū)別,比如訪問(wèn)Default.aspx頁(yè)面時(shí),地址欄看起來(lái)和下面的差不多:
http://localhost:2448/ASPNET_Security_Tutorial_03_CS/default.aspx
然而一旦你登錄后,票據(jù)將加密到URL里.比如,當(dāng)以Sam的名義登錄后,轉(zhuǎn)到Default.aspx頁(yè)面,這次地址欄看起來(lái)和下面的差不多:
http://localhost:2448/ASPNET_Security_Tutorial_03_CS/(F(jaIOIDTJxIr12xYS-VVgkqKCVAuIoW30Bu0diWi6flQC-FyMaLXJfow_Vd9GZkB2Cv-rfezq0gKadKX0YPZCkA2))/default.aspx
該票據(jù)已經(jīng)被編碼進(jìn)URL。字符串(F(jaIOIDTJxIr12xYS-VVgkqKCVAuIoW30Bu0diWi6flQC-FyMaLXJfow_Vd9GZkB2Cv-rfezq0gKadKX0YPZCkA2)就是以16進(jìn)制對(duì)票據(jù)信息編碼后的效果。這于通常情況下存儲(chǔ)在一個(gè)cookie里的數(shù)據(jù)是一樣的。
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線(xiàn): 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3