首页 > 代码库 > cookie,session,viewstate
cookie,session,viewstate
1.viewstate的原理是隐藏域。
protected void Page_Load(object sender, EventArgs e) { ViewState["v1"] = "hello,world"; }
2.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 }
3.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)
4.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值,供将来全局的访问。
cookie,session,viewstate
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。