国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

如何在Asp中設計跨越域的Cookie_ASP教程

2024-05-04 11:04:08
字體:
來源:轉載
供稿:網友

推薦:如何用ASP實現對ORACLE數據庫的操作
ASP(Active Server Pages)是微軟公司為開發互聯網應用程序所提出的工具之一,ASP與數據庫的聯接一般通過ADO(Activex Data Object)來實現的,就象《計算機世界》2000年3月20日的《用ASP

Cookie簡介

首先,我們對Cookie做一個簡單的介紹,說明如何利用ASP來維護cookie。

Cookie是存儲在客戶端計算機中的一個小文件,這就意味著每當一個用戶訪問你的站點,你就可以秘密地在它的硬盤上放置一個包含有關信息的文件。這個文件幾乎可以包含任何你打算設置的信息,包括用戶信息、站點狀態等等。這樣的話,就有一個潛在的危險:這些信息有可能被黑客讀取。為了防止這個問題的發生,一個有效的辦法就是cookie只能被創建它的域所存取。這就是說:比如ytu.edu.cn只能訪問ytu.edu.cn創建的cookie。通常來講,這沒有什么問題;但是,如果需要兩個不同域上的兩個不同站點共享保存在cookie中的用戶信息,該如何處理呢?當然可以選擇復制用戶信,但是,如果你需要用戶只能在一個站點上注冊,并且自東成為另外一個站點的注冊用戶呢?或者,兩個站點共享一個用戶數據庫,而又需要用戶自動登錄呢?這時候,跨越域共享cookie是最好的解決方案。

這里,先看一些ASP處理cookie的代碼,以便以后便于引用參考。

以下為引用的內容:

'創建Cookie

  Response.Cookies("MyCookie").Expires=Date 365

  Response.Cookies("MyCookle").Domain="mydomaln.com"

  Response.Cookies("MyCookle")("Username")=strUsername

  Response.Cookies("MyCookle")("Password")=strPassword


讀寫cookie非常簡單,上面的代碼創建一個cookie并給cookie設置屬性:域、過期時間,以及其他一些保存在cookie中的值。這里,strUsename,strPassword是在前面某個地方設置的變量。然后,通過下面的語句在cookie中讀取。

以下為引用的內容:

  '讀取Cookie

  datExpDate=Request.Cookies("MyCookie")

  strDomaln=Request.Cookies("MyCookle").Domain

  strUsername=Request.Cookies("MyCookle")("Username")

  strPassword=Request.Cookies("MyCookie")("Password")

更詳細的信息,可以參考ASP的資料。

實現

簡單地共享cookie的訣竅是重定向,一般過程為:

1.一個用戶點擊siteA.com。

2.如果用戶沒有siteA.com的cookie,就把用戶重定向到siteB.com。

3.如果用戶有siteB.com的cookie,把用戶連同一個特殊的標志(將在下面解釋)重定向回siteA.com,否則,只把用戶重定向到siteA.com。

4.在siteA.com創建cookie。

看起來很簡單,仔細分析一下:siteA.com和siteB.com共享相同的用戶設置,所以,如果用戶有siteB.com的cookie(已經注冊),siteA.com能夠同樣讀取cookie、提供cookie所允許的特性。這樣,訪問siteA.com的用戶就如同訪問了siteB.com。

這個檢查的環節應該在siteA.com中的文件所包含一個cookies.inc中實現。讓我們看一下這段代碼:

以下為引用的內容:

  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


如果用戶有一個siteA.com的cookie,則不需要做任何事情了;第一個if語句用來消除無限的循環。讓我們看一下siteB.com上的cookie.asp文件來獲得進一步的理解。

如果用戶在siteB.com上仍沒有cookie,于是,將他送回到siteA.com,并且通過在查詢語句中提供一個叫做"checkd"的參數讓應用程序知道你已經檢查過cookie了。否則,將用戶送回到siteB.com,并退出循環。

然而,如果用戶擁有siteB.com的cookie,我們需要將用戶送回siteA.com并告訴siteA.com。為此,我們在數據庫中附加一個唯一的標志,username。所以,我們擴展siteA.com中的代碼。   

以下為引用的內容:

l—3

  'SiteA.com
...

...

'檢查標志

  If Request.Querystring("identifier")<>"" then

  strUsername=Request.Querystring("identifier")

  '記錄到數據庫

  Response.Cookies("siteA_Cookie").Expires=Date 365

  Response.Cookies("SiteA_Cookie").Domain="siteA.com"

  Response.Cookies("siteA_Cookie")("Username")=strUsername

  End if

分享:淺析ASP中的Debug類--VBScript
不知道用ASP寫代碼的朋友是不是和我有一樣的感受,ASP中最頭疼的就是調試程序的時候不方便,我想可能很多朋友都會用這樣的方法“response.write ”,然后輸出相關的語句來看看是

共2頁上一頁12下一頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南郑县| 怀仁县| 通渭县| 买车| 新乐市| 古浪县| 石柱| 东台市| 平利县| 洪泽县| 抚州市| 琼海市| 汾阳市| 乌拉特中旗| 砚山县| 清苑县| 英德市| 商城县| 枝江市| 图们市| 南充市| 玉林市| 梅河口市| 霍林郭勒市| 闽侯县| 承德县| 乌兰察布市| 札达县| 阿拉善盟| 施甸县| 昭苏县| 手游| 沛县| 罗定市| 邵阳市| 寻乌县| 任丘市| 珲春市| 社旗县| 潜江市| 昌黎县|