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