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

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

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

    飛艷小屋

    程序--人生--哲學(xué)___________________歡迎艷兒的加入

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


    我當(dāng)前所吃的東東都固定為食物,所以一點也不驚訝,這一周的主題為cookies。


    Cookies用于存儲特定用戶信息,它提供了Web程序中一種有用的方式。多年以來,JavaScript開發(fā)人員已經(jīng)進行了有關(guān)cookie的大量工作。同樣,ASP.NET通過System.Web空間名稱也提供了cookie的訪問。雖然你不應(yīng)該使用cookie來存儲一些敏感性的數(shù)據(jù),但是,它們是處理鎖細(xì)數(shù)據(jù)的一個極好的選擇,比如顏色參數(shù)選擇或者最后一次訪問日期。

    傳遞cookies
    cookie是存儲在客戶端計算機的一個小文件。如果你是一個Windows用戶,可以在用戶路徑中查看Cookies路徑,即為Documents And Settings路徑。這一路徑包含這一文件名稱的文本文件:

    username @ Web site domain that created the cookie

    (用戶名稱@建立cookie的站點域名)

    .NET System.Web空間名稱包含三個類,你可以使用它們來處理客戶端的Cookies:

    HttpCookie:提供一個建立和操作獨立HTTP cookies的安全類型的方式。

    HttpResponse:Cookies屬性允許客戶端cookies被操作。

    HttpRequest:Cookies屬性允許訪問客戶端操作的cookies。

    HttpResponse和HttpRequest對象的Cookies屬性將返回一個HttpCookieCollection對象,它包含著,將單獨的cookies添加到集合(collection)中,以及從集合(collection)獲得一個單獨的cookies。

    HttpCookie類
    HttpCookie類針對于客戶存儲之用而建立的單獨cookies。一旦HttpCookie對象被建立,你可以涮砑擁紿ttpResponse對象的Cookies屬性中。同樣的,你可以通過HttpRequest對象訪問現(xiàn)有的cookies。HttpCookie類包含以下的公有屬性:

    Domain(域名):獲得或設(shè)置與cookie有關(guān)的域名,可用于限制特定區(qū)域的cookie訪問。

    Expires(期限):獲得或設(shè)置cookie的終止日期和時間,你可以將其設(shè)置為一個過去的日期以自動終止或者刪除cookie。

    Names(名稱):獲得或設(shè)置cookie名稱。

    Path(路徑):獲得或設(shè)置cookie的虛擬路徑。這一屬性允許你限制cookie范圍,也就是說,訪問cookie只能限制于一個特定的文件夾或者路徑。設(shè)置這一屬性限制為只能訪問特定路徑和該路徑下的所有文件。

    Secure(安全):發(fā)信號以表示是否使用Secure Sockets Layer (SSL)來發(fā)送cookie值。

    Value(值):獲得或設(shè)置一個單獨的cookie值。

    Values(信息):返回包含在cookie中的key/value的一個集合。

    雖然這些還不是一個最詳盡的列表,但它提供了處理cookies所需要的東西。對于這些屬性的使用,以下VB.NET范例給予最好的理解:

    Dim testCookie As New HttpCookie("LastVisited")

    testCookie.Value = DateTime.Now.ToString

    testCookie.Expires = DateTime.Now.AddDays(7)

    testCookie.Domain = "builder.com"

    Response.Cookies.Add(testCookie)

    這一代碼段建立了一個名為LastVisited的新的cookie,并賦予當(dāng)前日期和時間的值。同樣的,cookie終止期限設(shè)置為一個星期,相關(guān)的范圍為populated。一旦建立對象,通過Response.Cookies對象的Add方法就可以將對象添加到客戶端的cookies集合。HttpCookie構(gòu)造函數(shù)中的方法有兩種:

    HttpCookie objectName = New HttpCookie("cookieName")

    HttpCookie objectName = New HttpCookie("cookieName", "cookieValue")

    同樣,Response對象包含一個SetCookie方法,這一方法可以接受一個HttpCookie對象。

    我的cookie在哪里?
    一旦cookies被保存在客戶端,有多種不同的方法以提供你訪問它們。如果你知道cookie名稱,可以使用HttpResponse對象很容易地訪問它的值。以下VB.NET行顯示了與cookie有關(guān)的值:


     

    Response.Write(Request.Cookies("LastVisitied").Value)

     

    除此之外,可以通過一個HttpCookieCollection對象訪問cookies的完整列表。這就使得cookie列表可以用一個for循環(huán)來訪問。以下C#代碼說明了這樣的例子:

    HttpCookieCollection cookies;

    HttpCookie oneCookie;

    cookies = Request.Cookies;

    string[] cookieArray = cookies.AllKeys;

    for (int i=0; I < cookieArray.Length; i++) {

    oneCookie = cookies[cookieArray[i]];

    Response.Write(oneCookie.Name + " - " + oneCookie.Value);

    }

     

    VB.NET中相應(yīng)的代碼如下:

     

    Dim i As Integer

    Dim oneCookie As HttpCookie

    For i = 0 To Request.Cookies.Count - 1

    oneCookie = Request.Cookies(i)

    Response.Write(oneCookie.Name + " - " + oneCookie.Value)

    Next I

    穩(wěn)定也是一個觀點
    cookie文件存放在客戶端機器,所以你的用戶可以任意刪除或更改。此外,用戶還可以使cookies無效化。基于此原因,請記住不要依賴cookie數(shù)據(jù)。你應(yīng)該將重要的信息保存在服務(wù)器──特別是一個數(shù)據(jù)庫中。

    在一個cookie中存儲關(guān)鍵信息被認(rèn)為是一種低級的程序設(shè)計,因為這些信息很容易被泄露,原因是這些信息位于客戶機器的一個文件中。在這一點,一種方法就是使用SSL,這是一種可以避免敏感信息的更好方法。

     

    我可以使用cookies嗎?
    用戶可以在自己的瀏覽器上無效化cookie支持。你可以在自己的代碼中訪問這些設(shè)置以決定是否支持cookies。Request對象滿足了這一想法,以下VB.NET代碼顯示了這一過程:

     

    If Request.Browser.Cookies = True Then

    ' 使用cookies

    Else

    '沒有cookie支持

    End If

     

    可以聯(lián)合代碼來使用cookie值。以下C#代碼段對cookie支持進行了測試,并相應(yīng)地將結(jié)果顯示在一個文本框:

    if (Request.Browser.Cookies == true)

    {

    if (Request.Cookies["LastVisited1"] == null)

    {

    HttpCookie newCookie = new HttpCookie("LastVisited1",DateTime.Now.ToString());

    newCookie.Expires = DateTime.Now.AddYears(1);

    Response.Cookies.Add(newCookie);

    this.txtName.Text = "Is this your first time?";

    } else {

    this.txtName.Text = "We haven't seen you since " +

     Request.Cookies["LastVisited1"].Value;

    }  }

     

    你可以將這一代碼段添加到ASP.NET頁中的Page_Load事件。

    保存數(shù)據(jù)的另一方式
    ASP.NET提供了保存特定用戶數(shù)據(jù)的多種方法。其中一個老方法就是cookies。對于敏感數(shù)據(jù),雖然cookies不是最好的方法,但它是諸如顏色參數(shù)選擇、最后一次訪問日期等親和力選項(benign items)的最佳選擇。雖然這些敏感數(shù)據(jù)重要,但當(dāng)用戶的計算機崩潰時數(shù)據(jù)丟失,這也不是世界的末日。

    posted on 2005-11-14 20:54 天外飛仙 閱讀(297) 評論(0)  編輯  收藏 所屬分類: .net
    主站蜘蛛池模板: 毛片在线看免费版| 亚洲一区二区三区在线观看精品中文| 亚洲日韩国产精品乱-久| 亚洲免费中文字幕| 亚洲AV无码国产精品色午友在线| 无码日韩精品一区二区免费暖暖 | 日韩a级毛片免费视频| 大桥未久亚洲无av码在线| 久久久久噜噜噜亚洲熟女综合| 免费在线中文日本| 亚洲精品乱码久久久久久V| 在线观看国产区亚洲一区成人 | 97在线免费视频| 亚洲另类春色校园小说| 免费在线观看毛片| 2021精品国产品免费观看| 日本亚洲中午字幕乱码| 亚洲国产精品婷婷久久| a级片在线免费看| 色在线亚洲视频www| 亚洲中文字幕无码中文字在线| av大片在线无码免费| 日韩在线观看免费| 亚洲字幕在线观看| 最近最新中文字幕完整版免费高清| 高潮内射免费看片| 亚洲狠狠爱综合影院婷婷| 精品国产免费人成电影在线观看 | 特级毛片免费播放| 亚洲中文无码a∨在线观看| 亚洲一区二区三区国产精品| a级毛片免费全部播放无码| 亚洲欧美日韩中文字幕在线一区| 亚洲AV无码不卡在线播放| 免费a级毛片永久免费| 黄色永久免费网站| 久久久久国产免费| 国产免费高清69式视频在线观看 | 亚洲精品国产综合久久一线| 97在线观免费视频观看| 日本免费久久久久久久网站|