欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總結(jié)C#網(wǎng)絡(luò)編程中對于Cookie的設(shè)定要點(diǎn)

 更新時間:2016年04月05日 17:19:40   作者:nutian  
這篇文章主要介紹了總結(jié)C#網(wǎng)絡(luò)編程中對于Cookie的設(shè)定要點(diǎn),文中還給出了一個cookie操作實(shí)例僅供參照,需要的朋友可以參考下

花了2天時間,徹底搞清C#中cookie的內(nèi)容,搞清以下內(nèi)容將讓你對所有網(wǎng)站的cookie都盡在掌握之中.

cookieCollection是一個針對一個域所有的cookie的集合
cookeContainer是一個容器,里面可以裝多個域的cookie的集合,即一個

cookieContainer可以包含多個cookieCollection,這個容器可以定義大小,決定

最多裝多少個cookie,如果裝滿了還要再裝,它會自動剔除原來過期的cookie.

再說到一個cookie的結(jié)構(gòu):
Cookie由變量名和值組成,類似Javascript變量。其屬性里既有標(biāo)準(zhǔn)的Cookie

變量,也有用戶自己創(chuàng)建的變量,屬性中變量是用“變量=值”形式來保存。
  根據(jù)Netscape公司的規(guī)定,Cookie格式如下:

  Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;

Domain=DOMAIN_NAME;SECURE

  NAME=VALUE:

  這是每一個Cookie均必須有的部分。NAME是該Cookie的名稱,VALUE是該

Cookie的值。在字符串“NAME=VALUE”中,不含分號、逗號和空格等
字符。
  Expires=DATE:Expires變量是一個只寫變量,它確定了Cookie有效終止日

期。該屬性值DATE必須以特定的格式來書寫:星期幾,
DD-MM-YY HH:MM:SS GMT,GMT表示這是格林尼治時間。反之,不以這樣的格

式來書寫,系統(tǒng)將無法識別。該變量可省,如果缺省時,
則Cookie的屬性值不會保存在用戶的硬盤中,而僅僅保存在內(nèi)存當(dāng)中,Cookie

文件將隨著瀏覽器的關(guān)閉而自動消失。
  Domain=DOMAIN-NAME:Domain該變量是一個只寫變量,它確定了哪些

Internet域中的Web服務(wù)器可讀取瀏覽器所存取的Cookie,即只有來自這
個域的頁面才可以使用Cookie中的信息。這項設(shè)置是可選的,如果缺省時,設(shè)

置Cookie的屬性值為該Web服務(wù)器的域名。
  Path=PATH:Path屬性定義了Web服務(wù)器上哪些路徑下的頁面可獲取服務(wù)器

設(shè)置的Cookie。一般如果用戶輸入的URL中的路徑部分從第一個字符
開始包含Path屬性所定義的字符串,瀏覽器就認(rèn)為通過檢查。如果Path屬性的

值為“/”,則Web服務(wù)器上所有的WWW資源均可讀取該Cookie。同樣
該項設(shè)置是可選的,如果缺省時,則Path的屬性值為Web服務(wù)器傳給瀏覽器的資

源的路徑名。
  可以看出我們借助對Domain和Path兩個變量的設(shè)置,即可有效地控制

Cookie文件被訪問的范圍。
  Secure:在Cookie中標(biāo)記該變量,表明只有當(dāng)瀏覽器和Web Server之間的

通信協(xié)議為加密認(rèn)證協(xié)議時,瀏覽器才向服務(wù)器提交相應(yīng)的
Cookie。當(dāng)前這種協(xié)議只有一種,即為HTTPS。
以上的cookie內(nèi)容中,真正發(fā)送給服務(wù)器的內(nèi)容,只有NAME和VALUE對,其他東西

都是給客戶端的瀏覽器用來管理cookie的,比如是否存放在硬盤上?存放多久?這

瀏覽器在訪問哪個網(wǎng)站的時候要發(fā)這個cookie.

這幾個類型的轉(zhuǎn)換方法:
cookieContainer.GetCookies()獲得cookieCollection,而cookieCollection直

接加索引號獲得某一個具體的cookie,

cookieContainer.add()可以添加cookie或者cookieCollection,甚至直接用

http的頭中的cookie信息就可以直接往cookieContainer中添加cookie,用

cookieContainer.SetCookies(Uri, string)來實(shí)現(xiàn),其中的string就是cookie的字符串內(nèi)容,這個字符串可以通過response.Headers.Get("Set-Cookie")獲得,這里注意一點(diǎn),SetCookies()函數(shù)中的Uri,不能和cookie字符串中的域名Domain完全相同,比如Uri=new Uri("http://.google.com"),而cookie中的

Domain=.google.com,這個時候cookieContainer.SetCookies()函數(shù)將會報錯,

提示域名不正確,解決方法是,uri = new Uri("http://www.google.com")即可,

反正改為其他的類似路徑都可以,為什么不能相同,誰知道呢,問微軟去.就這個

地方的問題,害我耗了幾個小時.

CookieContainer.GetCookieHeader()函數(shù)可以讀出cookieContainer中所有指

定網(wǎng)站的cookie,以字符串方式顯示.
自己想要輸入字符串單獨(dú)構(gòu)造cookie,也很簡單,Cookie的構(gòu)造函數(shù)就搞定.

cookie操作實(shí)例

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

 
public class Cookie
{
  /// <summary>
  /// Cookies賦值
  /// </summary>
  /// <param name="strName">主鍵</param>
  /// <param name="strValue">鍵值</param>
  /// <param name="strDay">有效天數(shù)</param>
  /// <returns></returns>
  public bool setCookie(string strName, string strValue, int strDay)
  {
    try
    {
      HttpCookie Cookie = new HttpCookie(strName);
      //Cookie.Domain = ".xxx.com";//當(dāng)要跨域名訪問的時候,給cookie指定域名即可,格式為.xxx.com
      Cookie.Expires = DateTime.Now.AddDays(strDay);
      Cookie.Value = strValue;
      System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
      return true;
    }
    catch
    {
      return false;
    }
  }

  /// <summary>
  /// 讀取Cookies
  /// </summary>
  /// <param name="strName">主鍵</param>
  /// <returns></returns>
 
  public string getCookie(string strName)
  {
    HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
    if (Cookie != null)
    {
      return Cookie.Value.ToString();
    }
    else
    {
      return null;
    }
  }

  /// <summary>
  /// 刪除Cookies
  /// </summary>
  /// <param name="strName">主鍵</param>
  /// <returns></returns>
  public bool delCookie(string strName)
  {
    try
    {
      HttpCookie Cookie = new HttpCookie(strName);
      //Cookie.Domain = ".xxx.com";//當(dāng)要跨域名訪問的時候,給cookie指定域名即可,格式為.xxx.com
      Cookie.Expires = DateTime.Now.AddDays(-1);
      System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
      return true;
    }
    catch
    {
      return false;
    }
  }
}

相關(guān)文章

  • 詳解C#App.config和Web.config加密

    詳解C#App.config和Web.config加密

    本篇文章給大家分享了C#App.config和Web.config加密的相關(guān)知識點(diǎn)以及具體代碼步驟,有興趣的朋友參考學(xué)習(xí)下。
    2018-05-05
  • C#數(shù)組初始化簡析

    C#數(shù)組初始化簡析

    C#數(shù)組與其它C系列語言有著很多的不同,以前接觸的時候理解出現(xiàn)很大的偏差。尤其是對多維數(shù)組的認(rèn)識,本文將詳細(xì)介紹C#數(shù)組初始化,需要的朋友可以參考下
    2012-11-11
  • C#實(shí)現(xiàn)兩個exe程序之間通信詳解

    C#實(shí)現(xiàn)兩個exe程序之間通信詳解

    這篇文章主要為大家詳細(xì)介紹了C#如何使用SendMessage實(shí)現(xiàn)兩個程序之間的通信功能,文中的示例代碼簡潔易懂,需要的小伙伴可以參考下
    2023-07-07
  • C#中將DataTable轉(zhuǎn)換成CSV文件的方法

    C#中將DataTable轉(zhuǎn)換成CSV文件的方法

    DataTable用于在.net項目中,用于緩存數(shù)據(jù),DataTable表示內(nèi)存中數(shù)據(jù)的一個表,在.net項目中運(yùn)用C#將DataTable轉(zhuǎn)化為CSV文件,接下來通過本文給大家提供一個通用的方法,感興趣的朋友可以參考下
    2016-10-10
  • 詳解ObjectARX開發(fā)環(huán)境的創(chuàng)建與開發(fā)實(shí)例Hello World(VS2005+AutoCad2008+ObjectArx2008)

    詳解ObjectARX開發(fā)環(huán)境的創(chuàng)建與開發(fā)實(shí)例Hello World(VS2005+AutoCad2008+Object

    這篇文章主要介紹了ObjectARX開發(fā)環(huán)境的創(chuàng)建與開發(fā)實(shí)例Hello World(VS2005+AutoCad2008+ObjectArx2008),本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • WPF實(shí)現(xiàn)圖片合成或加水印的方法【2種方法】

    WPF實(shí)現(xiàn)圖片合成或加水印的方法【2種方法】

    這篇文章主要介紹了WPF實(shí)現(xiàn)圖片合成或加水印的方法,結(jié)合實(shí)例形式分析了2種比較實(shí)用的WPF圖片操作相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • C#中Abstract方法和Virtual方法的區(qū)別

    C#中Abstract方法和Virtual方法的區(qū)別

    這篇文章介紹了C#中Abstract方法和Virtual方法的區(qū)別,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Unity實(shí)現(xiàn)虛擬鍵盤

    Unity實(shí)現(xiàn)虛擬鍵盤

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)虛擬鍵盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • C#中{get;set;}的具體使用

    C#中{get;set;}的具體使用

    本文主要介紹了C#中{get;set;}的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Unity使用多態(tài)制作計算器功能

    Unity使用多態(tài)制作計算器功能

    這篇文章主要為大家詳細(xì)介紹了Unity使用多態(tài)制作計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論