国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

.NET使用無Cookie的表單認(rèn)證票據(jù)

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-05-01 18:42:06

        默認(rèn)情況下,forms authentication system將決定是將票據(jù)存儲(chǔ)在cookies collection里還是插入用戶訪問頁面的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)用一種探測機(jī)制來判斷是否可以使用cookies.

.UseDeviceProfile——這是默認(rèn)值,如果device profile支持cookies,就使用基于cookie的票據(jù),不運(yùn)用探測機(jī)制。

其中,AutoDetect 和 UseDeviceProfile選項(xiàng)都依靠一個(gè)device profile來判斷是使用基于cookie還是無cookie的票據(jù)。ASP.NET有一個(gè)關(guān)于這種devices及其性能的數(shù)據(jù)庫,比如某種devices是否支持cookies,它支持那個(gè)版本的JavaScript等信息。每次,當(dāng)一個(gè)device向服務(wù)器發(fā)出對某個(gè)頁面的請求時(shí),該請求里將包含一

個(gè)名為“user-agent”的HTTP header,用于表明device的類型。ASP.NET將自動(dòng)的把提供的user-agent字符串與數(shù)據(jù)庫里相應(yīng)的信息匹配起來。

注意:

該數(shù)據(jù)庫存儲(chǔ)在很多的XML文件里.這些默認(rèn)的device profile文件,其路徑為%WINDIR%Microsoft.NetFrameworkv2.0.50727CONFIGBrowsers。你也可以在你應(yīng)用程序的App_Browsers文件夾里添加自定義的文件,關(guān)于這方面的更多信息,請參閱文章《How To: Detect Browser Types in ASP.NET Web Pages》

由于默認(rèn)使用的是UseDeviceProfile選項(xiàng).當(dāng)訪問站點(diǎn)的某個(gè)device不支持cookies時(shí),就站點(diǎn)就使用無cookie的票據(jù).

在URL里對票據(jù)進(jìn)行編碼

當(dāng)瀏覽器每次向某個(gè)站點(diǎn)發(fā)出請求時(shí),用來存儲(chǔ)信息的載體通常是Cookies。但如果訪問站點(diǎn)的device不支持Cookies的話,我們必須使用某種方法在客戶端和服務(wù)器端傳遞票據(jù),通常的做法是在URL里將cookie數(shù)據(jù)編碼。

為了進(jìn)行演示,我們將強(qiáng)迫站點(diǎn)使用無cookie的票據(jù),為此我們將采用UseUri:

做了上述修改后,通過瀏覽器訪問.當(dāng)以匿名用戶進(jìn)行訪問時(shí),URL看起來和以前沒什么區(qū)別,比如訪問Default.aspx頁面時(shí),地址欄看起來和下面的差不多:

http://localhost:2448/ASPNET_Security_Tutorial_03_CS/default.aspx

然而一旦你登錄后,票據(jù)將加密到URL里.比如,當(dāng)以Sam的名義登錄后,轉(zhuǎn)到Default.aspx頁面,這次地址欄看起來和下面的差不多:

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)制對票據(jù)信息編碼后的效果。這于通常情況下存儲(chǔ)在一個(gè)cookie里的數(shù)據(jù)是一樣的。

上一篇:三層最重要的也是“抽象”
下一篇:在C#程序設(shè)計(jì)中使用Win32類庫

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號-3

關(guān)注我們
在線咨詢
嘿,我來幫您!