Cookie的使用[最近浏览]

 
Cookie 的使用
通过创建 HttpCookie 对象的实例编写 Cookie
1. 创建 HttpCookie 类型的对象并为它分配名称。 2. Cookie 的子项赋值并设置所有 Cookie 属性。
3. 将该 Cookie 添加到 Cookies 集合中。
该实例表示一个名为 User Cookie
HttpCookie myCookie = new HttpCookie(" User ");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);// 添加Cookies
通过为 Cookies 集合设置 Cookie 属性编写 Cookie
在要编写 Cookie ASP.NET 页中,请在 Cookies 集合中给 Cookie 赋予属性。
该实例表示一个名为 User Cookie ,并设置 Font Color 子项的值。它还将过期时间设置为明天。
Response.Cookies[" User "]["Font"] = "Arial";
Response.Cookies[" User "]["Color"] = "Blue";
Response.Cookies[" User "].Expires = DateTime.Now.AddDays(1d);
读取 Cookie
1. 使用 Cookie 名作为键从 Cookies 集合中读取字符串。 2.Cookie 中的所有值都作为 String 类型存储
下面的示例读取名为 User Cookie ,然后读取名为 Font 的子键的值。
if (Request.Cookies[" User "] != null)
{
    string userSettings;
    if (Request.Cookies[" User "]["Font"] != null)
    { userSettings = Request.Cookies[" User "]["Font"]; }
}
向 Cookie 分配已过去的到期日期
1. 确定 Cookie 是否存在,如果存在则创建同名的新 Cookie 2. Cookie 的到期日期设置为过去的某一时间。
3. Cookie 添加到 Cookies 集合对象。
下面的代码示例演示如何为 Cookie 设置已过去的到期日期。
if (Request.Cookies[" User "] != null)
{
    HttpCookie myCookie = new HttpCookie(" User ");
    myCookie.Expires = DateTime.Now.AddDays(-1d);
    Response.Cookies.Add(myCookie);
}
不能直接删除用户计算机中的 Cookie。但是,可以通过将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除 Cookie。当用户下一次向设置该 Cookie 的域或路径内的页发出请求时,浏览器将确定该 Cookie 已到期并将其移除。
在读取特定 Cookie 值时,请测试该 Cookie 是否存在以及它是否具有值,否则将发生异常。
从集合中移除的 Cookie 名称:示例
 
MyCookieCollection.Remove(MyCookie);
从集合中移除具有指定名称的 Cookie。
Cookie 数组:示例
HttpCookie[] myCookie = new HttpCookie[6];
myCookie[0] = new HttpCookie("Top");
myCookie[0]["productId"] = productId.ToString();

 

最近浏览功能实现:

// 新建一个cookie数组  
        HttpCookie[] myCookie;
        
if  (Request.Cookies[ " Top " ==   null )
        
{
            
//创建一个长度为6的数组
            myCookie = new HttpCookie[6];
            
for (int i = 0; i < 6; i++)
            
{
                
//定义cookie子键名称
                string cookieName = "Top" + i.ToString();
                
//定义cookie父键名称
                myCookie[i] = new HttpCookie("Top");
                
//添加cookie
                Response.Cookies["Top"][cookieName] = ViewState["productId"].ToString();
                
//Response.Cookies["Top"].Expires = DateTime.Now.AddDays(7d);
            }

        }

        
else
        
{
            myCookie 
= new HttpCookie[6];
            
for (int i = 0; i < myCookie.Length; i++)
            
{
                
string cookieName = "Top" + i.ToString();
                
string nextName = "Top" + Convert.ToString((i + 1));
                myCookie[i] 
= new HttpCookie("Top");
                
//读取出全部cookie
                if (Request.Cookies["Top"!= null)
                
{
                    
if (Request.Cookies["Top"][cookieName] != null)
                    
{
                        myCookie[i][cookieName] 
= Request.Cookies["Top"][cookieName].ToString();                        
                    }

                    
if (myCookie[i][cookieName] == ViewState["productId"].ToString())
                    
{
                        
return;
                    }

                }

            }



            
for (int i = 0; i < myCookie.Length; i++)
            
{
                
string cookieName = "Top" + i.ToString();
                
string nextName = "Top" + Convert.ToString((i + 1));

                
//如果里面有相同的值,则返回;
                
//if (myCookie[i][cookieName] == Convert.ToInt32(ViewState["productId"].ToString()))
                
//{
                
//}
                
//如果cookie长度小于6;则添加cookie
                if (myCookie.Length < 6)
                
{
                    Response.Cookies[
"Top"][cookieName] = ViewState["productId"].ToString();
                }

                
//如果cookie长度为6,则前推一位,将新的cookie赋予最后一位;
                if (myCookie.Length == 6)
                
{
                    
if (i < myCookie.Length - 1)
                    
{
                        
string cookname = Request.Cookies["Top"][nextName];
                        Response.Cookies[
"Top"][cookieName] = cookname;
                    }

                    
else
                    
{
                        Response.Cookies[
"Top"][cookieName] = ViewState["productId"].ToString();
                    }

                }

                        
            }

            
//设置cookie的有效期
            Response.Cookies["Top"].Expires = DateTime.Now.AddDays(1d);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值