Cookie知识点整理

1,编写 Cookie的两种方式:

   

    1)Response.Cookies["userName"].Value = "patrick";
         Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);

     2)HttpCookie aCookie = new HttpCookie("lastVisit");
         aCookie.Value = DateTime.Now.ToString();
         aCookie.Expires = DateTime.Now.AddDays(1);
         Response.Cookies.Add(aCookie);
  2,例子:
    HttpCookie cookie = new HttpCookie("LoginUser");
                    cookie.Values.Add("UserId", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["Id"].ToString()));
                    cookie.Values.Add("UserName", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["UserName"].ToString()));
                    cookie.Values.Add("UserType", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["UserType"].ToString()));
                    Response.AppendCookie(cookie);或 Response.Cookies.Add(cookie);
获取:    UserId = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserId"]);
            UserName = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserName"]);
            UserType = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserType"]);
 
if(Request.Cookies["userInfo"] != null)
{
    Label1.Text = 
        Server.HtmlEncode(Request.Cookies["userInfo"]["userName"]);

    Label2.Text =
        Server.HtmlEncode(Request.Cookies["userInfo"]["lastVisit"]);
}
3,将 Cookie 限制到某个文件夹或应用程序
HttpCookie appCookie = new HttpCookie("AppCookie");
appCookie.Value = "written " + DateTime.Now.ToString();
appCookie.Expires = DateTime.Now.AddDays(1);
appCookie.Path = "/Application1";
Response.Cookies.Add(appCookie);
4,限制 Cookie 的域范围
Response.Cookies["domain"].Value = DateTime.Now.ToString();
Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["domain"].Domain = "support.contoso.com";
5,读取 Cookie
if(Request.Cookies["userName"] != null)
    Label1.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);

if(Request.Cookies["userName"] != null)
{
    HttpCookie aCookie = Request.Cookies["userName"];
    Label1.Text = Server.HtmlEncode(aCookie.Value);
}
if(Request.Cookies["userInfo"] != null)
{
    System.Collections.Specialized.NameValueCollection
        UserInfoCookieCollection;
       
    UserInfoCookieCollection = Request.Cookies["userInfo"].Values;
    Label1.Text = 
        Server.HtmlEncode(UserInfoCookieCollection["userName"]);
    Label2.Text =
        Server.HtmlEncode(UserInfoCookieCollection["lastVisit"]);
}
6,有子键时读取
for(int i=0; i<Request.Cookies.Count; i++)
{
    aCookie = Request.Cookies[i];
    output.Append("Name = " + aCookie.Name + "<br />");
    if(aCookie.HasKeys)
    {
        for(int j=0; j<aCookie.Values.Count; j++)
        {
            subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]);
            subkeyValue = Server.HtmlEncode(aCookie.Values[j]);
            output.Append("Subkey name = " + subkeyName + "<br />");
            output.Append("Subkey value = " + subkeyValue + 
                "<br /><br />");
        }
    }
    else
    {
        output.Append("Value = " + Server.HtmlEncode(aCookie.Value) +
            "<br /><br />");
    }
}
Label1.Text = output.ToString();
或者
System.Text.StringBuilder output = new System.Text.StringBuilder();
HttpCookie aCookie;
string subkeyName;
string subkeyValue;

for (int i = 0; i < Request.Cookies.Count; i++)
{
    aCookie = Request.Cookies[i];
    output.Append("Name = " + aCookie.Name + "<br />");
    if (aCookie.HasKeys)
    {
        System.Collections.Specialized.NameValueCollection CookieValues = 
            aCookie.Values;
        string[] CookieValueNames = CookieValues.AllKeys;
        for (int j = 0; j < CookieValues.Count; j++)
        {
            subkeyName = Server.HtmlEncode(CookieValueNames[j]);
            subkeyValue = Server.HtmlEncode(CookieValues[j]);
            output.Append("Subkey name = " + subkeyName + "<br />");
            output.Append("Subkey value = " + subkeyValue + 
                "<br /><br />");
        }
    }
    else
    {
        output.Append("Value = " + Server.HtmlEncode(aCookie.Value) +
            "<br /><br />");
    }
}
Label1.Text = output.ToString();
7,修改和删除 Cookie
int counter;
if (Request.Cookies["counter"] == null)
    counter = 0;
else
{
    counter = int.Parse(Request.Cookies["counter"].Value);
}
counter++;

Response.Cookies["counter"].Value = counter.ToString();
Response.Cookies["counter"].Expires = DateTime.Now.AddDays(1);
删除Cookie
   HttpCookie aCookie;
        string cookieName;
        int limit = Request.Cookies.Count;
        for (int i = 0; i < limit; i++)
        {
            cookieName = Request.Cookies[i].Name;
            aCookie = new HttpCookie(cookieName);
            aCookie.Expires = DateTime.Now.AddDays(-1);
            Response.Cookies.Add(aCookie);
        }
8,确定浏览器是否接受 Cookie
a页面
     if (!Page.IsPostBack)
        {
            if (Request.QueryString["AcceptsCookies"] == null)
            {
                Response.Cookies["TestCookie"].Value = "ok";
                Response.Cookies["TestCookie"].Expires =
                    DateTime.Now.AddMinutes(1);
                Response.Redirect("b.aspx?redirect=" +
                    Server.UrlEncode(Request.Url.ToString()));
            }
            else
            {
                Label1.Text = "Accept cookies = " +
                    Server.UrlEncode(
                    Request.QueryString["AcceptsCookies"]);
            }
        }
B页面
  string redirect = Request.QueryString["redirect"];
        string acceptsCookies;
        if (Request.Cookies["TestCookie"] == null)
            acceptsCookies = "no";
        else
        {
            acceptsCookies = "yes";
            // Delete test cookie.
            Response.Cookies["TestCookie"].Expires =
                DateTime.Now.AddDays(-1);
        }
        Response.Redirect(redirect + "?AcceptsCookies=" + acceptsCookies,
        true);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值