• C#创建cookie读写cookie


    一、创建cookie

        HttpCookie cookie = new HttpCookie("UserInfo");//创建多值cookie
                  cookie.Expires = DateTime.Now.AddDays(1);//设置cookie的失效时间为一天,如果不设置失效时间,cookie会在浏览器关闭即消失,不会保存本地文件
                  cookie.Values["LoginName"] = txtusername.Text;

           cookie.Values["Pwd"] = txtusername.Text;

        这样创建了一个key为UserInfo的cookie,具有LoginName和Pwd两个属性。

        创建为cookie不要忘记添加cookie,否则是取不出来的

        Response.Cookies.Add(cookie);

    注:如果使用response.Cookies创建cookie就不用写上一句代码了。

    二、取cookie

        HttpCookie cookies = Request.Cookies["UserInfo"];//取cookie

        txtusername.Text = cookies.Values["LoginName"];//去cookie的LoginName属性 赋值给帐号文本框
        txtpass.Attributes.Add("value",cookies.Values["Pwd"]);//密码框不能直接赋值,使用添加属性可以赋值


    cookie属性:

    name字段:为一个cookie的名称。

    value字段:为一个cookie的值。

    domain字段:为可以访问此cookie的域名。

    path字段:为可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。

    expires 字段:为此cookie超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是Session,意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。

    Size字段 :此cookie大小。

    http字段  :cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。

    secure字段 :设置是否只能通过https来传递此条cookie

    在这里只写了简单的Cookie操作

    设置Cookie

    public void AddCookie()
    {
    //方法一:
    HttpCookie Cookie1 = new HttpCookie("CookieName");
    Cookie1.Expires
    = DateTime.Now.AddDays(1);//设置过期时间 Cookie1.Values["key1"] = "Value1";
    Cookie1.Values["key2"] = "Value2"; Response.Cookies.Add(Cookie1);
    //响应一个Cookies
    //方法二: Response.Cookies["CookieName"].Values["Key1"] = "Value1"; Response.Cookies["CookieName"].Values["Key2"] = "Value2";//存多值 Response.Cookies["CookieName"].Expires = DateTime.Now.AddDays(1);//设置过期时间
    //方法三: HttpCookie cookie3 = new HttpCookie("CookieName"); DateTime dt = DateTime.Now; //获取当前时间 TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//过期时间为1分钟 cookie3.Expires = dt.Add(ts);//设置过期时间 cookie3.Values.Add("Key1", "Value1"); cookie3.Values.Add("Key2", "Value2"); Response.AppendCookie(cookie3); //响应一个Cookies }

    获取Cookie

    public void ReadCookie()
    {
    //方法一:
    HttpCookie cookies1 = Request.Cookies["CookieName"];
    string Values1 = cookies1.Value;
    //string Values 1= cookies.Values["Key"];//获取多值
    //方法二:
    string Values2 = Request.Cookies["CookieName"].Value;
    //string Values2 = Request.Cookies["CookieName"].Values["Key"];//获取多值
    //方法三:(获取多值)
    string Values3 = Server.UrlDecode(Request.Cookies["CookieName"]["Key"]);
    //System.Web.HttpContext.Current.Request.Cookies["CookieName"];//同Request.Cookies
    }

    修改Cookie

    public void UpdateCookie()
    {
    //修改只需要重新给要修改的cookie赋值就行,这样旧的就会被覆盖掉。
    //所以这里只写一种方法,更多请参考创建cookie
    HttpCookie Cookie = Request.Cookies["CookieName"];
    Cookie.Expires = DateTime.Now.AddDays(1);//设置过期时间
    Cookie.Value = "Value";//设置值
    Response.Cookies.Add(Cookie);//响应一个Cookies
    }

    删除Cookie

    public void DeleteCookie()
    {
    //删除cookie只需修改的cookie的过期时间(expires)过去的时间即可
    //所以这里只写一种方法,更多请参考创建cookie
    HttpCookie Cookie = Request.Cookies["CookieName"];
    Cookie.Expires = DateTime.Now.AddDays(-1);//设置过期时间
    Response.Cookies.Add(Cookie);//响应一个Cookies
    }
    •  注意:对Cookie进行操作时应先判断cookie不为空

    • 注意:当Cookie存中文出现乱码,则在存放时给中文编码,读取时解码即可,如Cookie.setCookie("name", Server.UrlEncode("Value"),1)

    • 注意:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效

  • 相关阅读:
    《乘法运算定律》
    pytest(三十九)--内置request读取项目的根目录 rootdir
    《乘除法意义及各部分关系》
    《比例尺》
    《百分数》
    《8的乘法口诀》
    《1升有多少》
    ant-design-vue 上传图片组件
    ant-design-vue快速搭建
    js实现无缝滚动
  • 原文地址:https://www.cnblogs.com/wfy680/p/15400978.html
Copyright © 2020-2023  润新知