亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

asp.net 2.0 下的表單驗證Cookieless屬性

2019-11-18 16:55:44
字體:
來源:轉載
供稿:網友

剛剛在洗衣服的時候突然想到今天在做WAP程序的表單驗證的時候遇到一個問題,在不支持Cookies的移動設備模擬器中無法正常進行表單驗證,聯想到昨天使用web.config設置cookieless屬性時會在訪問時會出現"Cannot use a leading .. to exit above the top directory"的異常,自然而然的我就想到了前一段時間困擾我很久的一個站點異常無法使用前導 .. 在頂級目錄上退出(Cannot use a leading .. to exit above the top directory)。綜合一下,終于理解了為什么會出現這樣的異常,也理解了為什么在asp.net 2.0 中,將原來cookieless屬性只能設置true|false,改成了可以設置枚舉HttpCookieMode的值,分別為:AutoDetect,UseCookies,UseDevicePRofile,UseUri 。

如果對表單驗證很有經驗的朋友可能會很清楚,可以有兩種方式來保存當前的sessionID和用戶的驗證票信息,分別是使用Cookie和在URL地址加上一串編碼過的字符串來標識當前的SessionID和用戶的驗證票信息。第一種方式非常普遍,對于使用URI來標識當前SessionID和驗證票,我相信如果不是特殊需要的話,相信很多人都會跟我一樣還無法很好理解。我做了兩個簡單的頁面,來模擬用戶的驗證過程。當我在web.config中設置cookieless="AutoDetect"時,就跟我們平常一樣,登錄的URL是:

http://localhost:1115/FormsAuthentication/Security/Default.aspx

而當我設置cookieless="UseUri"時,這時URL地址就變成了:

http://localhost:1115/FormsAuthentication/(F(V0-gEZNEzXUqevbOqKwNoBcMf6vBWnyNbdpa2UhZzrfOUkGPvyB91-9nFlnBDmCAgdpz4gJ6kq-QOVjbNsvKig2))/Security/Default.aspx

在站點目錄多了一級目錄,這里的值就是當前會用戶的驗證票信息和SessionID信息。在某些場合,這樣做是非常有意義的(或者是必須的),因為在不支持cookie環境下,你要去標識一個是否屬于同一個會話,當前用戶是否已驗證過,等等與會話相關信息的時候就會變得異常的困難。

了解了這兩個保存會話信息的方式后,我們再來討論一下,asp.net team為什么把原來只能設置true | false的屬性改成可以設置不同的枚舉值.首先我們來看看這4個值的含意(在Windows Live Writer 不能畫表格 :< ):

AutoDetect:自動檢測客戶端實際是否支持cookie再來決定使用兩種方式中的哪一種(最佳適應)。

UseCookies:不管客戶端是否支持cookie,反正都使用cookie來標識(第一種方式)。

UseDeviceProfile:根據設備文件來判斷是否支持cookie,進而決定使用哪種方式。相信很多人都對這個概念很模糊,由于最近在研究WAP,所以對它有一些簡單的認識。在<%windir%>Microsoft.NET/Framework/v2.0.50727/CONFIG/Browsers目錄下有很多的.browser文件,這些文件就是用來標識對應的設備(瀏覽器)的瀏覽能力(描述不是很清楚,就是一些技術參數,是否支持cookie and so on),在asp.net中,會根據這些.browser文件,動態生成從HttpBrowserCapabilities繼承下來的設備參數類型,標識對應的設備的一些參數值,編程中可以通過Request.Browser得到這個設備參數對象,并使用。

UseUri :與UseCookies類似的,不管客戶端是否支持cookie,反正都使用第二種方式。

特別說明:為什么特別強調“實際”,和詳細描述UseDeviceProfile呢?主要是因為,我發現由于可能是設備文件中標識的參數與對應的設備的實際并不完全匹配,(比如,有可能設備文件中標識這種設備支持cookie,但實際的設備卻不支持)。所以如果要根據設備的實際來選擇是否使用cookie,那就要使用AutoDetect值了。設備文件只能是做為參考,當然如果你對設備文件有充分控制條件的話那就另當別論了。而且還有一點要特別注意,AutoDetect并不是默認值,UseDeviceProfile才是。

回到正題,為什么要改cookieless屬性的可選值呢?毫無疑問,是為了增加程序的可操控性。原來的值有點太過單一化了,二選一,沒有商量的余地。現在我們可以根據各種不同的情況來讓程序動態或程序員手動選擇。結合這一段時間的WAP開發經驗,我想這樣做的一個目的就是為了能更好的兼容移動設備,兼容WAP的應用。目前還有很多的設備還并不支持cookie。

有了上面的介紹后,我還想來解開為什么會出現“Cannot use a leading .. to exit above the top directory”異常的迷團。前幾天也有收到一個朋友的來信,也是在使用CommunityServer 2.0遇到這個問題,(相信目前遇到最多的就是asp.net 2.0版的CommunityServer了)。目前使用了Url Rewrite,所以我們程序的很多URL都是假的,所以如果在頁面中使用了相對路徑(~/)的話,那我們就有可能遇到這樣的麻煩了。因為搜索引擎(特別是google)不支持cookie,所以在它訪問站點的時候就會使用上面提到的第二種方式來標識會話信息,這時候URI就多了一級了,所以在這個頁面下所有的鏈接地址都是多一個../,無法正常訪問了,從而造成上面這個異常的出現。(其實可以看出這個異常本身與Url Rewrite并沒有多大關系,只不是communityserver和我的程序中都使用了url rewrite)。

解決辦法有三種:

1.設置cookieless = UseCookies,不管客戶端是否支持cookie都使用cookie。

2.因為默認cookieless = UseDeviceProfile,所以可以為搜索引擎建立一個設備文件.browser,弄虛作假一下?!禛et GoogleBot to crash your .NET 2.0 site》就有給出了這樣的做法了。

3.修改程序,將里面的相對路徑(~/)改成絕對路徑表示(可以使用Resolve方法)。

到目前為止對cookieless的討論就算告一段落了,我發現到目前為止中文社區好像還沒有很多人對這一屬性有過深入的討論。文中很多都是我個人綜合理解,總結出來,里面可能會有很多錯誤的認識和觀點,歡迎大家給我指正和補充。
http://www.49028c.com/hjf1223/archive/2006/10/14/529227.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区直播精品电影| 亚洲国产精品悠悠久久琪琪| 黑人极品videos精品欧美裸| 国产97免费视| 亚洲成人av在线播放| 亚洲午夜久久久影院| 亚洲乱码国产乱码精品精| 亚洲一区二区福利| 久久影视电视剧免费网站| 欧美电影免费在线观看| 日韩高清有码在线| www高清在线视频日韩欧美| 国产精品96久久久久久又黄又硬| 亚洲中国色老太| 久久99热精品这里久久精品| 中文字幕亚洲欧美一区二区三区| 亚洲欧美制服第一页| 国产精品 欧美在线| 国产综合久久久久| 国产精品三级网站| 亚洲最大福利视频网站| 日韩最新中文字幕电影免费看| 国产成人av在线| 久久亚洲成人精品| 欧美性猛交xxxx乱大交极品| 91综合免费在线| 国产精品高清在线观看| 亚洲春色另类小说| 日本中文字幕成人| 91久久久亚洲精品| 成人国产精品久久久久久亚洲| 国产91精品最新在线播放| 高清一区二区三区日本久| 97精品在线视频| 亚洲欧美制服丝袜| 亚洲欧洲偷拍精品| 亚洲一二在线观看| 欧美国产亚洲精品久久久8v| 成人国内精品久久久久一区| 亚洲第一天堂无码专区| 国产精品极品在线| 国产精品一区电影| 亚洲美女自拍视频| 欧美极品在线视频| 97视频在线看| 成人av在线天堂| 亚洲黄页视频免费观看| 国产成人综合精品在线| 亚洲欧美日韩精品| 亚洲最大的网站| 久久人人爽人人爽爽久久| 在线亚洲男人天堂| 国产成人av网址| 中文日韩电影网站| 亚洲3p在线观看| 久久999免费视频| 中文字幕免费精品一区| 欧美福利小视频| 69久久夜色精品国产7777| 日韩成人在线视频| 国产成人免费av| 亚洲第一精品自拍| 亚洲最新视频在线| 国产精品草莓在线免费观看| 欧美做受高潮电影o| 国产精品美女免费视频| 欧美亚洲在线视频| 久久久精品国产| 久久久亚洲国产天美传媒修理工| 日韩精品在线观看网站| 国产精品美女在线| 亚洲欧美成人在线| 欧美激情高清视频| 欧美性生交xxxxxdddd| 91av视频导航| 日韩黄色高清视频| 亚洲国产成人精品一区二区| 亚洲人成在线免费观看| 久久国产一区二区三区| 久久亚洲私人国产精品va| 日韩中文字幕在线视频播放| 色妞在线综合亚洲欧美| 亚洲欧洲自拍偷拍| 日韩欧美成人区| 亚州欧美日韩中文视频| 久久99国产精品久久久久久久久| 欲色天天网综合久久| 欧美激情在线观看| 国产成人精品综合久久久| 欧美专区福利在线| 国产精品毛片a∨一区二区三区|国| 51ⅴ精品国产91久久久久久| 国产女精品视频网站免费| 全色精品综合影院| 亚洲综合中文字幕68页| 国产91成人在在线播放| 国产在线精品自拍| 日韩激情第一页| 国产精品99久久99久久久二8| 欧美国产日本高清在线| 久久视频精品在线| 国产在线久久久| 久久免费少妇高潮久久精品99| 日本久久亚洲电影| 夜夜嗨av一区二区三区免费区| 中文字幕av一区二区| 中文字幕一区日韩电影| 国产精品久久久久久久久| 日本欧美黄网站| xxx一区二区| 亚洲欧美国产日韩天堂区| 日韩在线视频线视频免费网站| 国产精品一区二区久久| 亚洲伦理中文字幕| 日日狠狠久久偷偷四色综合免费| 国产免费观看久久黄| 欧美成年人视频网站欧美| 国产99久久久欧美黑人| 91九色视频在线| 欧美成人sm免费视频| 2019av中文字幕| 国产亚洲精品久久久优势| 九九久久综合网站| 日韩成人网免费视频| 日韩女优在线播放| 91chinesevideo永久地址| 国产亚洲精品久久久久久777| 午夜精品久久久久久久久久久久| 久久精品国产亚洲精品| 日韩精品福利网站| 欧美午夜宅男影院在线观看| 亚洲欧美综合精品久久成人| 高潮白浆女日韩av免费看| 久久免费视频这里只有精品| 国产一区二区三区在线| 美女视频黄免费的亚洲男人天堂| 亚洲综合国产精品| 国内精品久久久久久中文字幕| www.亚洲男人天堂| 欧美成人在线免费视频| 国产精品久久久亚洲| 亚洲日韩欧美视频| 日本高清视频精品| 成人av资源在线播放| 高清欧美性猛交xxxx黑人猛交| 国产色综合天天综合网| 国产精品手机播放| 亚洲精品欧美一区二区三区| 亚洲精品中文字幕有码专区| 欧美小视频在线观看| 亚洲电影成人av99爱色| 国产精品欧美日韩| 92看片淫黄大片看国产片| 国产成人亚洲综合91精品| 亚洲va欧美va在线观看| 亚洲精品在线视频| 亚洲国产美女久久久久| 国产精品99免视看9| 亚洲综合在线中文字幕| 欧美精品videos另类日本| 欧美午夜精品久久久久久人妖| 欧美福利视频在线| 日韩天堂在线视频| 欧美大尺度在线观看|