• 让Cookies操作变得向Session一样简单


    很多开发者都会觉得使用Session比使用Cookies简单,不需要实例化,直接可以使用索引器;那么接下来我们将让Cookies操作达到Session一样的操作简单

    建立类:

    C# 代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;

    namespace testcookie
    ...{
    public class CCookies
    ...{
    static CCookies instance = null;
    static readonly object padlock = new object();
    private CCookies()
    ...{
    }

    public static CCookies Cookie ...{
    get ...{
    lock (padlock) ...{
    if (instance == null)
    instance
    = new CCookies();
    return instance;
    }

    }

    }


    public string this[string key]
    ...{
    get
    ...{
    return GetValue(key);
    }

    set
    ...{
    Add(key, value);
    }

    }


    /// <summary>
    /// 添加Cookie 项
    /// </summary>
    /// <param name="key">键名</param>
    /// <param name="value">键值</param>

    public void Add(string key, string value)
    ...{
    HttpCookie cookie
    = HttpContext.Current.Request.Cookies["User"];
    if (cookie == null)
    ...{
    cookie
    = new HttpCookie("User");
    cookie.Expires
    = DateTime.Now.AddDays(1);
    }

    cookie.Values[key]
    = value;
    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
    }


    /// <summary>
    /// 获取Cookie值
    /// </summary>
    /// <param name="key">键名</param>
    /// <returns></returns>

    public string GetValue(string key) ...{
    HttpCookie cookie
    = (HttpCookie)System.Web.HttpContext.Current.Request.Cookies["User"];
    if (cookie != null)
    ...{
    return cookie.Values[key];
    }

    return string.Empty;
    }


    /// <summary>
    /// 移除Cookie值
    /// </summary>
    /// <param name="key">键名</param>

    public void Remove(string key)
    ...{
    HttpCookie cookie
    = HttpContext.Current.Request.Cookies["User"];
    if (cookie != null)
    ...{
    cookie.Values.Remove(key);
    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
    }

    }

    /// <summary>
    /// 清除 Cookie
    /// </summary>

    public void Clear() ...{
    HttpCookie cookie
    = (HttpCookie)System.Web.HttpContext.Current.Request.Cookies["User"];
    if (cookie != null)
    ...{
    cookie.Expires
    = System.DateTime.Now.AddDays(-2);
    cookie.Values.Clear();
    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
    }

    }

    }

    }

    使用实例:

    C# 代码
    testcookie.CCookies.Cookie.Add("A", "a");
    testcookie.CCookies.Cookie[
    "B"] = "b";
    testcookie.CCookies.Cookie[
    "C"] = "c";

    Response.Write(testcookie.CCookies.Cookie[
    "A"]);
    Response.Write(testcookie.CCookies.Cookie.GetValue(
    "B"));
    Response.Write(testcookie.CCookies.Cookie[
    "C"] + "<br>");

    testcookie.CCookies.Cookie.Clear();
    Response.Write(testcookie.CCookies.Cookie[
    "A"]);
    Response.Write(testcookie.CCookies.Cookie.GetValue(
    "B"));
    Response.Write(testcookie.CCookies.Cookie[
    "C"]);

    现在是不是操作很简单了呢?

    当然,上面的代码还只能完成初步的工作,向cookies的domain,以及有效期都不能灵活设置,我们可以根据自己的项目去修改。

  • 相关阅读:
    【概念】using 三种使用方式
    2019-7-2 作业1 2 3
    异常
    java.lang.NullPointerException
    课外作业(建立double类型的小数,按照四舍五入保留2位小数)
    作业1.2.3.4
    左自增与右自增的区别
    深入了解JVM(Java虚拟机)
    Eclipse报错Could not resolve archetype
    ThinkPad E550 连蓝牙鼠标logitech M557
  • 原文地址:https://www.cnblogs.com/leeolevis/p/1383111.html
Copyright © 2020-2023  润新知