asp.net使用cookie总结

 

cookie:
   
Response.Cookies["userName"].Value = "patrick";
     Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);
     HttpCookie aCookie = new HttpCookie("lastVisit");
     aCookie.Value = DateTime.Now.ToString();
     aCookie.Expires = DateTime.Now.AddDays(1);
     Response.Cookies.Add(aCookie);

Cookie有多个值:
     Response.Cookies["userInfo"]["userName"] = "patrick";
     Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();
     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);
     HttpCookie aCookie = new HttpCookie("userInfo");
     aCookie.Values["userName"] = "patrick";
     aCookie.Values["lastVisit"] = DateTime.Now.ToString();
     aCookie.Expires = DateTime.Now.AddDays(1);
     Response.Cookies.Add(aCookie);
限制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);
限制Cookie域名范围:
     Response.Cookies["domain"].Value = DateTime.Now.ToString();
     Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
     Response.Cookies["domain"].Domain = "support.contoso.com";
     Response.Cookies["domain"].Value = DateTime.Now.ToString();
     Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
     Response.Cookies["domain"].Domain = "contoso.com";
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)
{
   Label1.Text =
   Server.HtmlEncode(Request.Cookies["userInfo"]["userName"]);
   Label2.Text =
   Server.HtmlEncode(Request.Cookies["userInfo"]["lastVisit"]);
}
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"]);
改变Cookie的过期时间:
System.Text.StringBuilder output = new System.Text.StringBuilder();
HttpCookie aCookie;
for(int i=0; i<Request.Cookies.Count; i++)
{
   aCookie = Request.Cookies[i];
   output.Append("Cookie name = " + Server.HtmlEncode(aCookie.Name)
   + "<br />");
    output.Append("Cookie value = " + Server.HtmlEncode(aCookie.Value)+ "<br /><br />");
}
Label1.Text = output.ToString();
读取Cookie集合:
     System.Text.StringBuilder output = new System.Text.StringBuilder();
     HttpCookie aCookie;
     for(int i=0; i<Request.Cookies.Count; i++)
     {
        aCookie = Request.Cookies[i];
        output.Append("Cookie name = " + Server.HtmlEncode(aCookie.Name) + "<br />");
        output.Append("Cookie value = " + Server.HtmlEncode(aCookie.Value)+ "<br                                       /><br />");
      }
      Label1.Text = output.ToString();

Demo:
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();
修改或删除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);

}
修改或删除子键:

    Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();          Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);
        string subkeyName;

        subkeyName = "userName";

        HttpCookie aCookie = Request.Cookies["userInfo"];

        aCookie.Values.Remove(subkeyName);

        aCookie.Expires = DateTime.Now.AddDays(1);

        Response.Cookies.Add(aCookie);
Cookie的安全性:
    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            if (Request.QueryString["AcceptsCookies"] == null)

            {

                Response.Cookies["TestCookie"].Value = "ok";

                Response.Cookies["TestCookie"].Expires =

                DateTime.Now.AddMinutes(1);

                Response.Redirect("TestForCookies.aspx?redirect=" +

                Server.UrlEncode(Request.Url.ToString()));

            }

            else

            {

                Label1.Text = "Accept cookies = " +

                Server.UrlEncode(

                Request.QueryString["AcceptsCookies"]);

            }

        }

    }
    protected void Page_Load(object sender, EventArgs e)

    {

        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);

 

    }

具体参考,可以参考西南本本网——http://www.xnbenben.com

posted @ 2009-05-13 17:45  xnbenben  阅读(112)  评论(0)    收藏  举报