cookie,session,viewstate

  • viewstate的原理是隐藏域。

  

  protected void Page_Load(object sender, EventArgs e)
    {
        ViewState["v1"] = "hello,world";
    }
  • cookie是保存在浏览器的,一种是保存在缓存中,一种是保存在硬盘中。(保存在硬盘中的需要设置cookie的expires属性)
       string strName = Request.Form["txtUName"];
            string strPwd = Request.Form["txtPwd"];
            if (strName == "aaaaaa" && strPwd == "cccccc")
            {
                //新建 包含了 登录用户名 的cookie对象
                HttpCookie cook = new HttpCookie("uInfo", strName);
                //设置cook的失效时间为两天之后(保存在浏览器所在电脑的硬盘中了)
                cook.Expires = DateTime.Now.AddDays(2);
                //设置一个cook用来保存cook失效时间
                HttpCookie cookTime = new HttpCookie("time", DateTime.Now.AddDays(2).ToString());
                //将 cookie对象加入响应流中的cookie集合
                Response.Cookies.Add(cook);
                Response.Cookies.Add(cookTime);
                Response.Redirect("Default.aspx");//重定向 302
            }
  • session保存在服务器上。利用了保存在浏览器缓存中的cookie技术。session可以保存任何对象,可以在webconfig里设置session的在服务器上失效的时间
  <system.web>
      <compilation debug="true" targetFramework="4.0" />
      <sessionState timeout="60"/>
    </system.web>

  可以自己写一个sessionmanager类来模拟session的技术(用cookie存sessionID)。

  1.   可以让ASPNET_STATE服务来保存session。(进程外session1)
  2.   可以让session保存在数据库里,用aspnet_regsql.exe(进程外session2)
  • application

  保存在服务器端,一个浏览器设置了,其他的浏览器也都可以访问。(相当于公共厕所)

    protected void Button1_Click(object sender, EventArgs e)
    {
        Application.Lock();
        Application["name"] = TextBox1.Text.Trim();
        Application.UnLock();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Application.Lock();
        Response.Write("god welcome you mr:" + Application["name"]);
        Application.UnLock();
    }

  application可以在服务器端做一些全局的配置。

  可以给项目添加全局应用程序文件(*.asax),在application_start()方法里写一个application值,供将来全局的访问。

  • form的runat="server"属性。有这个属性的时候,在生产的HTML代码里会有一个_VIEWSTATE的隐藏域。在后台就可以通过IsPostBack来判断是否是第一次访问。
posted on 2016-09-01 18:48  王延刚  阅读(257)  评论(0编辑  收藏  举报