如何在Asp中設(shè)計(jì)跨越域的Cookie_ASP教程
推薦:如何用ASP實(shí)現(xiàn)對(duì)ORACLE數(shù)據(jù)庫(kù)的操作ASP(Active Server Pages)是微軟公司為開(kāi)發(fā)互聯(lián)網(wǎng)應(yīng)用程序所提出的工具之一,ASP與數(shù)據(jù)庫(kù)的聯(lián)接一般通過(guò)ADO(Activex Data Object)來(lái)實(shí)現(xiàn)的,就象《計(jì)算機(jī)世界》2000年3月20日的《用ASP
Cookie簡(jiǎn)介
首先,我們對(duì)Cookie做一個(gè)簡(jiǎn)單的介紹,說(shuō)明如何利用ASP來(lái)維護(hù)cookie。
Cookie是存儲(chǔ)在客戶(hù)端計(jì)算機(jī)中的一個(gè)小文件,這就意味著每當(dāng)一個(gè)用戶(hù)訪(fǎng)問(wèn)你的站點(diǎn),你就可以秘密地在它的硬盤(pán)上放置一個(gè)包含有關(guān)信息的文件。這個(gè)文件幾乎可以包含任何你打算設(shè)置的信息,包括用戶(hù)信息、站點(diǎn)狀態(tài)等等。這樣的話(huà),就有一個(gè)潛在的危險(xiǎn):這些信息有可能被黑客讀取。為了防止這個(gè)問(wèn)題的發(fā)生,一個(gè)有效的辦法就是cookie只能被創(chuàng)建它的域所存取。這就是說(shuō):比如ytu.edu.cn只能訪(fǎng)問(wèn)ytu.edu.cn創(chuàng)建的cookie。通常來(lái)講,這沒(méi)有什么問(wèn)題;但是,如果需要兩個(gè)不同域上的兩個(gè)不同站點(diǎn)共享保存在cookie中的用戶(hù)信息,該如何處理呢?當(dāng)然可以選擇復(fù)制用戶(hù)信,但是,如果你需要用戶(hù)只能在一個(gè)站點(diǎn)上注冊(cè),并且自東成為另外一個(gè)站點(diǎn)的注冊(cè)用戶(hù)呢?或者,兩個(gè)站點(diǎn)共享一個(gè)用戶(hù)數(shù)據(jù)庫(kù),而又需要用戶(hù)自動(dòng)登錄呢?這時(shí)候,跨越域共享cookie是最好的解決方案。
這里,先看一些ASP處理cookie的代碼,以便以后便于引用參考。
| 以下為引用的內(nèi)容:
'創(chuàng)建Cookie Response.Cookies("MyCookie").Expires=Date 365 Response.Cookies("MyCookle").Domain="mydomaln.com" Response.Cookies("MyCookle")("Username")=strUsername Response.Cookies("MyCookle")("Password")=strPassword |
讀寫(xiě)cookie非常簡(jiǎn)單,上面的代碼創(chuàng)建一個(gè)cookie并給cookie設(shè)置屬性:域、過(guò)期時(shí)間,以及其他一些保存在cookie中的值。這里,strUsename,strPassword是在前面某個(gè)地方設(shè)置的變量。然后,通過(guò)下面的語(yǔ)句在cookie中讀取。
| 以下為引用的內(nèi)容:
'讀取Cookie datExpDate=Request.Cookies("MyCookie") strDomaln=Request.Cookies("MyCookle").Domain strUsername=Request.Cookies("MyCookle")("Username") strPassword=Request.Cookies("MyCookie")("Password") |
更詳細(xì)的信息,可以參考ASP的資料。
實(shí)現(xiàn)
簡(jiǎn)單地共享cookie的訣竅是重定向,一般過(guò)程為:
1.一個(gè)用戶(hù)點(diǎn)擊siteA.com。
2.如果用戶(hù)沒(méi)有siteA.com的cookie,就把用戶(hù)重定向到siteB.com。
3.如果用戶(hù)有siteB.com的cookie,把用戶(hù)連同一個(gè)特殊的標(biāo)志(將在下面解釋)重定向回siteA.com,否則,只把用戶(hù)重定向到siteA.com。
4.在siteA.com創(chuàng)建cookie。
看起來(lái)很簡(jiǎn)單,仔細(xì)分析一下:siteA.com和siteB.com共享相同的用戶(hù)設(shè)置,所以,如果用戶(hù)有siteB.com的cookie(已經(jīng)注冊(cè)),siteA.com能夠同樣讀取cookie、提供cookie所允許的特性。這樣,訪(fǎng)問(wèn)siteA.com的用戶(hù)就如同訪(fǎng)問(wèn)了siteB.com。
這個(gè)檢查的環(huán)節(jié)應(yīng)該在siteA.com中的文件所包含一個(gè)cookies.inc中實(shí)現(xiàn)。讓我們看一下這段代碼:
| 以下為引用的內(nèi)容:
l—1 'SiteA.com"檢查cookie If Request.Querystring("Checked")<>"True" then If not Request.Cookies("SiteA_Cookie").Haskeys then '重走向到siteB.com Response.Redlrect("http://www.siteB.com/cookie.asp") End if End if |
如果用戶(hù)有一個(gè)siteA.com的cookie,則不需要做任何事情了;第一個(gè)if語(yǔ)句用來(lái)消除無(wú)限的循環(huán)。讓我們看一下siteB.com上的cookie.asp文件來(lái)獲得進(jìn)一步的理解。
如果用戶(hù)在siteB.com上仍沒(méi)有cookie,于是,將他送回到siteA.com,并且通過(guò)在查詢(xún)語(yǔ)句中提供一個(gè)叫做"checkd"的參數(shù)讓?xiě)?yīng)用程序知道你已經(jīng)檢查過(guò)cookie了。否則,將用戶(hù)送回到siteB.com,并退出循環(huán)。
然而,如果用戶(hù)擁有siteB.com的cookie,我們需要將用戶(hù)送回siteA.com并告訴siteA.com。為此,我們?cè)跀?shù)據(jù)庫(kù)中附加一個(gè)唯一的標(biāo)志,username。所以,我們擴(kuò)展siteA.com中的代碼。
| 以下為引用的內(nèi)容:
l—3 'SiteA.com ... '檢查標(biāo)志 If Request.Querystring("identifier")<>"" then strUsername=Request.Querystring("identifier") '記錄到數(shù)據(jù)庫(kù) Response.Cookies("siteA_Cookie").Expires=Date 365 Response.Cookies("SiteA_Cookie").Domain="siteA.com" Response.Cookies("siteA_Cookie")("Username")=strUsername End if |
分享:淺析ASP中的Debug類(lèi)--VBScript不知道用ASP寫(xiě)代碼的朋友是不是和我有一樣的感受,ASP中最頭疼的就是調(diào)試程序的時(shí)候不方便,我想可能很多朋友都會(huì)用這樣的方法“response.write ”,然后輸出相關(guān)的語(yǔ)句來(lái)看看是
- asp FSO 讀寫(xiě)文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶(hù)真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
ASP教程Rss訂閱編程教程搜索
ASP教程推薦
- ASP 3.0高級(jí)編程(三十九)
- 用ASP封IP的方法,防止固定IP垃圾留言
- Asp讀取文本文件并顯示
- 怎樣提高asp程序訪(fǎng)問(wèn)速度
- 一個(gè)實(shí)用asp分頁(yè)函數(shù)
- ASP技巧實(shí)例:ASP實(shí)現(xiàn)最簡(jiǎn)潔的多重查詢(xún)的解決方案
- ASP入門(mén):認(rèn)識(shí)ASP程序所使用的幾種腳本語(yǔ)言
- 揭秘escape解決AJAX中文亂碼的簡(jiǎn)單方法
- 解讀ASP+SQL的存儲(chǔ)過(guò)程簡(jiǎn)單入門(mén)
- 動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)ASP日期和時(shí)間函數(shù)示例
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-如何在Asp中設(shè)計(jì)跨越域的Cookie
。