session、cookie

session:全局变量组

存放位置:存放在服务器上

 用法:相当于一个变量的使用方法,存在于服务器内存上,抓取速度快

主界面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        string s = TextBox1.Text;
        Session["a"] = s;
    }
}

副界面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(Session["a"]!=null)
        Label1.Text = Session["a"].ToString();
    }
}

作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量

优点:安全,速度快,全局访问无限制

缺点:消耗服务器内存资源

弊端:session占用服务器资源,每一个访问对象都会创建session,如果访问对象过多,会占用过多服务器资源,造成服务器崩溃。

Session生命周期:20分钟

注意:1、不要存大量数据在Session里

   2、临时Session取完无用后记得 = null清空它,释放内存资源

cookie-全局变量组

存放位置:客户端电脑硬盘上

作用:保存数据信息,只能保存字符串,全局访问

用法:

赋值:用response

     string s = TextBox1.Text;
        Response.Cookies["b"].Value = s;

取值:用request

 Label1.Text = Request.Cookies["b"].Value;

定义使用期限:response

 Response.Cookies["username"].Expires = DateTime.Now.AddDays(3);//三天期限

跳转页面地址栏不转变的方法:server.transfer

Server.Transfer("Default2.aspx?id=1111111111111111");

用法简例:
主界面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        string s = TextBox1.Text;
        //Session["aa"] = s;
        if (s == "zhangke" && TextBox2.Text == "1234")
        {
            Response.Cookies["username"].Value = s;

            if (CheckBox1.Checked)
            {
                Response.Cookies["username"].Expires = DateTime.Now.AddDays(3);//三天期限
            }


            //Response.Redirect("Default2.aspx");
            Server.Transfer("Default2.aspx?id=1111111111111111");
        }
        else
            Response.Write("用户名密码错误!");

    }
}

副界面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["username"] != null)
            Label1.Text = Request.Cookies["username"].Value;
        else
            Response.Redirect("Default.aspx");

        Label1.Text += "," + Request["id"];


        Button1.Click += Button1_Click;

    }

    void Button1_Click(object sender, EventArgs e)
    {
        Response.Cookies["username"].Expires = DateTime.Now.AddDays(-10);
        Response.Redirect("Default.aspx");
    }
}

会话Cookie消失的办法: 

1、浏览器一关,此次访问一中断

2、没有任何新的提交,20分钟过期

3、手动清楚浏览器Cookie

持久Cookie消失的办法:

1、代码设置过期

2、手动清楚浏览器Cookie

原文地址:https://www.cnblogs.com/wy1992/p/6245120.html