WebForm内置对象:Session、Cookie,登录和状态保持

1、Request -获取请求对象

string s =Request["key"];

2、Response  -  响应请求对象

Response.Redirect("url");     服务端重定向,在当前页面跳转。

Response.Write("string");     将此字符串输出到页面的最顶端,里面可以放Js。

3、Session
存贮在服务端,占用服务器内存
很好用,速度很快
不要滥用,容易溢出

生命周期:20分钟,每一次新的请求都会刷新这个时间

浏览器一旦关闭,那么会断开此条Session的连接

Session里面能存储Object类型

(1)、传值:

string s=TextBox1.Text;

Session["aaa"]=s;

Response.Redirect("url");

(2)、取值: 

Label1.Text=  Session["aaa"].Tostring();

(3)、如果报错:未将对象引用设置到对象的实例。

存贮在服务端,占用服务器内存 。浏览器一旦关闭,那么会断开此条Session的连接 

处理办法:在取值时进行判断

if(Session["aaa"]!=null)

{

Label1.Text=  Session["aaa"].Tostring();

}

(4)、如果传一个对象的话:

赋值:Users u= new Users();

         u.UserName="lisi";

         u.PassWord="123";

         Session["user"]=u;

         Response.Redirect("url");

取值:Users uu=Session["user"] as Users;

        Label1.Text= uu.UserName+uu.PassWord;

(5)、在Session取值结束以后可以直接把Session释放。

Session["aaa"]=null;


4、Cookie   传值只能传递string类型。

传值:string s =TextBox1.Text;

        Response.Cookies["aa"].Value=s;

        Response.Cookies["aa"].Expires=DateTime.Now.AddDays(3);         设置Cookies3天后到期。

        Response.Redirect("url");

取值:string ss=Request.Cookies["aa"].Value;

        Label1.Text=ss;

如果报错:未将对象引用设置到对象的实例。

在取值时进行判断

if(Request.Cookies["aa"]!=null)

{

     string ss=Request.Cookies["aa"].Value;

     Label1.Text=ss;

}

Cookies与Session基本一致,
不一样的地方:Cookies是存储在客户端的,并且只能传递string类型。

Session很安全,但是消耗服务器内存
Cookies,不消耗服务器内存,存在客户端上,但是有可能被访问

赋值:
Response.Cookies["aa"].Value = s;

取值:
string ss = Request.Cookies["aa"].Value;

5、登录和状态保持。

在登录界面登录按钮的点击事件中:

 

在主界面进行取值:

主界面的退出登录按钮:

原文地址:https://www.cnblogs.com/snow22546/p/6904043.html