崩溃吧:Cookie
我们知道窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自于相同的客户端,或者单个浏览器实例是否一直在查看页或站点,到服务器的每一往返都将销毁并重新创建页,因此超过单个页的生命周期,页信息将不存在
状态管理的作用主要体现在:
1、指示用户信息,关联浏览器实例
2、使得页与页之间,请求与请求之间能够共享信息
3、更加快速的数据存储
除了Cookie外,几乎没有其他的方法在客户端的机器上写入数据(就连Cookie的写入操作也是浏览器进行的:服务器通过发回响应,让浏览器增加Cookie,当然,浏览器也可以通过安全配置来禁止。现在的大多数的网站都是利用Cookie来记录一些数据的(比如说你的ID),以便于你下一次访问网站时能直接以前的配置,所以最好是不要轻易关闭Cookie,那些Cookie是不是存在着一些风险呢?如果用户可以改变Cookie中的信息的话那里服务器还傻傻地以之前的配置来往回页?有没有这样的可能?刚刚查看了下浏览器,它是没有办法修改Cookie的信息的,只能是清除Cookie。但是为了防止Cookie信息的泄露,我们可以对Cookie进行加密!
好吧,现在来看看如何使用C#来增删查改Cookie
View Code
//要使用Response对象把Cookie重新返回浏览器,再由浏览器把在客户端
//机器上写Cookie
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie Cookie = new HttpCookie (CookieName.Text,CookieValue.Text);
// Cookie.Expires = DateTime.Now.AddSeconds(int.Parse(CookieExpires.Text));
Response.Cookies.Add(Cookie);
}
protected void Button3_Click(object sender, EventArgs e)
{
HttpCookie Cookie = Request.Cookies[CookieName .Text];
if (Cookie != null)
{
Cookie_Info.Text = Cookie.Name + "___" + Cookie.Value + "-----" + Cookie.Expires;
}
}
//删除Cookie
//我们不能直接的把Cookie删除掉,服务器是不可能删除Cookie的,删除Cookie的操作是浏览器进行的。
//我们可以把Cookie设置为过去的时间,让Cookie过期
protected void Button2_Click(object sender, EventArgs e)
{
Cookie_Info.Text = "";
HttpCookie Cookie = Request.Cookies[CookieName.Text];
if (Cookie != null)
{
Cookie.Expires = DateTime.MinValue;
}
Response.Cookies.Add(Cookie);
}
相关新闻>>
- 发表评论
-
- 最新评论 更多>>