<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    C# 中的 cookie 編程
     
    作者:邱燕菱    文章來源:本站原創    點擊數:    更新時間:2005-11-8
     
    Cookie就是所謂的“小甜餅“ ,他最早出現是在Netscape Navigator 2.0中。Cookie其實就是由Web服務器創建的、將信息存儲在計算機上的文件。那么為什么Web服務器要在客戶機上面創建如此文件?這是因為當客戶機發送一個請求到WEB服務器時(譬如準備瀏覽頁面時),無論此客戶機是否是第一次來訪,服務器都會把它當作第一次來對待,WEB服務器所做的工作只是簡單的進行響應,然后就關閉與該用戶的連接。這樣處理過程所帶來的缺點時顯而易見的。自從網景公司開發出Cookie以后,就可以利用Cookie來保存用戶的識別信息。Cookie的作用可以記錄了您在該站點上曾經訪問過的頁面,由此幫助您下次訪問該站點時自定義查看。Cookies 也可以存儲個人可識別信息。個人可識別信息是可以用來識別或聯系您的信息,例如姓名、電子郵件地址、家庭或工作地址,或者電話號碼。然而,網站只能訪問您提供的個人可識別信息。例如,除非您提供電子郵件名稱,否則網站將不能確定您的電子郵件名稱。另外,網站不能通過Cookie來訪問計算機上的其他信息。當然除非你提供。那么Cookie到底存放在什么地方?如果機器的系統是視窗98且安裝在“ C“ 盤中,那么Cookie存放在“ C:\Windows\Cookies“ 目錄中;如果機器系統是視窗2000且安裝在“ C“ 盤中,那么Cookie存放在“ C:\Documents and Settings\Administrator\Cookies“ 目錄中。了解了Cookie這么多知識,我們還是來了解一下本文的重點-- C#是如何進行Cookie方面編程的。主要內容有二點:其一是 C#是如何寫入Cookie;其二是 C#是如何訪問自己寫入的Cookie。

    一、本文介紹的程序設計和運行的軟件環境:

    微軟公司視窗2000服務器版
    .Net FrameWork SDK Beta 2

    C#進行Cookie方面編程是通過ASP.NET頁面來實現的。

    二、C#如何寫入Cookie:

    為了寫入Cookie,他的步驟主要有三步,具體如下:

    首先就要創建一個HttpCookie對象,通過這個對象來構造一個Cookie,這個對象的名稱就是以后產生的Cookie名稱。具體如下代碼:
    HttpCookie cookie = new HttpCookie ( “ 用戶定義的Cookie名稱“ ) ;

    然后對創建的HttpCookie對象的“ Value“ 屬性分配一個字符串值,“ Value“ 的值就是后來產生的Cookie的值。具體代碼如下:
    cookie.Value = “用戶給Cookie賦值“ ; 如果你想寫入的Cookie數值不是一個簡單的字符串,而是一個復雜的數據類型,我們知道這些數據類型是不能直接存貯到Cookie中的,因為Cookie中只能存貯字符串。但你可以通過一個變通的方法,就是把這個復雜的數據類型轉換成多個字符串,然后把這多個字符串同時賦值給產生的Cookie值,這樣Cookie中的內容就豐富了,以后利用Cookie完成的功能也強大了。這時你可能就會明白為什么當你瀏覽Web服務器,Web服務器會知道你什么時候曾經瀏覽過,并且曾經待過多長時間等信息了。因為這些信息已經存儲到你第一次瀏覽頁面時,Web服務器產生的Cookie中去了。下列代碼是把多個字符串存儲到Cookie的例子:
    cookie [ “ 姓名“ ] = “ 王天“;
    cookie [ “ 性別“ ] = “ 男“;
    cookie [ “ 年齡“ ] = “ 26“;

    Cookie有臨時的,也有永遠的。永久 Cookie 以文件形式存儲在計算機上,關閉 Internet Explorer 時仍然保留在計算機上。再次訪問該站點時,創建該 Cookie 的網站可以讀取。在具體的編程時候,是在寫入此Cookie的時候,設定Cookie的生命周期,具體如下代碼:
    DateTime dtNow = DateTime . Now ;
    TimeSpan tsMinute = new TimeSpan ( 0 , 1 , 0 , 0 ) ;
    cookie . Expires = dtNow + tsMinute ;

    以上代碼是設定產生的Cookie的生命期為“ 一個小時“ ,你可以通過修改“ TimeSpan“ 屬性來設定產生Cookie的具體生命期。
    .最后調用“ Response.Cookies“ 對象的“ Add()“ 方法,加入此對象,這樣就可以產生一個Cookie了。具體代碼如下:
    Response . Cookies . Add ( cookie ) ;
    下列代碼就是在 C#寫入Cookie的完整代碼(Write.aspx):
    〈% @ language = “C#“ %〉
    〈script runat = “server“ 〉
    void WriteClicked ( Object Sender , EventArgs e )
    {
    //創建一個HttpCookie對象
    HttpCookie cookie = new HttpCookie ( NameField . Text ) ;
    //設定此cookies值
    cookie . Value = ValueField . Text ;
    //設定cookie的生命周期,在這里定義為一個小時
    DateTime dtNow = DateTime . Now ;
    TimeSpan tsMinute = new TimeSpan ( 0 , 1 , 0 , 0 ) ;
    cookie . Expires = dtNow + tsMinute ;
    cookie [ “姓名“ ] = “王天“ ;
    cookie [ “性別“ ] = “男“ ;
    cookie [ “年齡“ ] = “26“ ;
    //加入此cookie
    Response . Cookies . Add ( cookie ) ;
    Response . Write ( NameField . Text + “Cookie創建完畢 〈br 〉 〈hr 〉 “ ) ;
    }
    〈/script 〉
    〈html 〉
    〈body 〉
    〈h3 〉 在 C#頁面中創建cookie 〈/h3 〉
    此cookie的生命周期定義為一個小時
    〈form runat=“server“〉
    Cookie名稱:〈asp:textbox id = “NameField“ runat = “server“ /〉 〈br 〉
    Cookie的值:〈asp:textbox id = “ValueField“ runat = “server“ /〉 〈br 〉
    〈asp:button text = “創建Cookie“ onclick = “WriteClicked“ runat = “server“ /〉 〈br 〉
    〈/form 〉
    〈/body 〉
    〈/html 〉

    當然上面的代碼產生的Cookie在內容上面有點單調了。其實對于內容十分豐富的Cookie來說,他還有許多屬性,充分的利用這些屬性,才可以利用了Cookie的強大功能。下表是Cookie的一些常用的屬性:

    屬性 描述
    Domain 設定/獲得Cookie應屬于的域名。一旦設定了此屬性,則只限定于此域名的Web服務器訪問此Cookie。可以設定為“ccw.com.cn“
    Path 設定/獲得Cookie應屬于的路徑,如果設定后,則訪問此Cookie的Web頁面則被限定在此路徑里面。其他路徑的Web頁面則不能訪問。
    Secure 設定/獲得一個標識來表明利用HTTP協議是否能夠安全的傳輸Cookie到客戶端的瀏覽器。
    HasKeys 表明是否此Cookie是否是多個字符串組成的。

    在寫入Cookie的時候,最大限度的利用這些屬性,對于最大程度的利用寫入的Cookie是十分重要的。

    三、C#是如何讀取已產生的Cookie:

    讀取指定的Cookie比起寫入Cookie要來的容易的多了,只需要使用“ Request.Cookies“ 對象就可以完成。下面是讀取指定Cookie名稱的方法:

    HttpCookie cookie = Request.Cookies [ “ Cookie的名稱“ ] ;

    下面是顯示已經讀取了的Cookie的數值:

    Response.Write (cookie . Value . ToString ( ) ) ; 掌握了上面的要點,讀取Cookie就顯得非常容易了,下列是讀取Cookie的程序代碼(read.aspx): 〈% @ language = “C#“ %〉
    〈script runat = “server“ 〉
    void ReadClicked ( Object Sender , EventArgs e )
    {
    //得到用戶輸入的cookie名稱
    String strCookieName = NameField . Text ;
    //獲得cookie
    HttpCookie cookie = Request.Cookies [ strCookieName ] ;
    //確定是否存在用戶輸入的cookie
    if ( null == cookie ) {
    Response.Write ( “沒有發現指定的cookie 〈br 〉 〈hr 〉 “ ) ;
    }
    else {
    //找到指定的cookie,顯示cookie的值
    String strCookieValue = cookie . Value . ToString ( ) ;
    Response.Write ( strCookieName + “ cookie 的值為: 〈b 〉 “
    + strCookieValue + “ 〈/b 〉 〈br 〉 〈hr 〉 “ ) ;
    }
    }
    〈/script 〉
    〈html 〉
    〈body 〉
    在 C#頁面中讀取指定Cookie值〈br 〉
    〈form runat = “server“ 〉
    請輸入要讀取的Cookie名稱:〈asp:textbox id = “NameField“ runat = “server“ /〉
    〈asp:button text = “讀取cookie“ onclick = “ReadClicked“ runat = “server“ /〉
    〈/form 〉
    〈/body 〉
    〈/html 〉

    四、總結:

    至此我們已經介紹了用 C#進行Cookie編程的大部分內容。其實Cookie在互聯網上有著比較大的作用。譬如它可讓WEB站點跟蹤特定訪問者的訪問次數、最后訪問時間和訪問者進入站點的路徑等;還可告訴在線廣告商廣告被點擊的次數,從而可以更精確的投放廣告;它可讓用戶在不鍵入密碼和用戶名的情況下進入曾經瀏覽過的一些站點;最為重要的是它可幫助站點統計用戶資料以實現個性化服務等等。掌握了 C#的Cookie編程,就可以在程序中充分利用Cookie來實現上面的這些功能了。不信你試一試。 

    posted on 2005-11-14 21:36 天外飛仙 閱讀(275) 評論(0)  編輯  收藏 所屬分類: .net
    主站蜘蛛池模板: 成人嫩草影院免费观看| 久久久久亚洲精品无码蜜桃| 亚洲欧美成人一区二区三区| 日韩免费高清大片在线| 91亚洲精品第一综合不卡播放| 四虎国产精品免费永久在线| 久久久久国产亚洲AV麻豆| 久草免费福利在线| 亚洲乱亚洲乱妇无码麻豆| 黄网站免费在线观看| 久久精品国产亚洲AV无码娇色| 99热免费在线观看| 亚洲国产人成在线观看| 四虎影视免费在线| 亚洲第一第二第三第四第五第六| 午夜dj免费在线观看| 免费福利在线观看| 精品亚洲视频在线观看| 久久久久国产免费| 亚洲偷自精品三十六区| 国产在线观看免费不卡| 国产午夜精品理论片免费观看| 亚洲国产一区二区三区青草影视| 亚洲免费在线视频观看| 最新亚洲卡一卡二卡三新区| 亚洲AV无码专区日韩| 中文字幕a∨在线乱码免费看| 久久亚洲国产伦理| 午夜私人影院免费体验区| 一级毛片视频免费观看| 亚洲视频在线观看免费| 手机在线毛片免费播放| 黄色网页在线免费观看| 91亚洲va在线天线va天堂va国产 | 成人影片麻豆国产影片免费观看| 亚洲av成人中文无码专区| 亚洲人成色77777| 国产精品视频永久免费播放| 一级毛片一级毛片免费毛片 | 亚洲成a人片在线观看国产| 久久青青草原国产精品免费|