什么是Cookies?Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端进行判断,然后再产生HTML代码返回给客户端,这是一个很重要的原理。关于服务器端和客户端的概念,请点击我写的这篇:什么是服务器端和客户端,举了2个实例。
Cookies在ASP中的最常用的方法,
1.如何写入Cookies?
Response.Cookies("字段名")=变量或字符串,例如:
Response.Cookies("name2")="Dingdang"
2.如何设置Cookies时间?
Response.Cookies("字段名").expires=时间函数+N,例如:
Response.Cookies("name2").expires=date+1,表示Cookies保存1天,再比如:
Response.Cookies("name2").expires=Hour+8,表示Cookies保存8小时。
3.在以往的ASP教程中,很少有介绍Cookies退出的方法。在“退出”这个ASP页中可以这样写:
Response.Cookies("字段名")=""
之后,在客户端的浏览器就清除了Cookies,并且Cookies文件会消失。注意有多少个字段,就要写多少句来清除。
4.如何读取Cookies?
变量名=Request.Cookies("字段名"),例如:
name2=Request.Cookies("name2")
如果网页中写入这句,则会显示“Dingdang”。
也可以这样直接读取Cookies,
Cookies是属于Session对象的一种。但有不同,Cookies不会占服务器资源;而“Session”则会占用服务器资源。所以,尽量不要使用Session,而使用Cookies。
ASP.NET登录状态保持 并 设置IE cookie
写入Cookie
//第一次登录的时候,点击登录按钮事件下写
HttpCookie cookie = new HttpCookie("userName",user.UserName);
cookie.Expires = DateTime.Today.AddDays(300); //设置过期时间,
Response.AppendCookie(cookie);
Response.Redirect("index.aspx");
//在你的目标页的Load事件下写
if (!IsPostBack)//判断是否回传
{
if (Request.Browser.Cookies == true)
{
if (Request.Cookies["userName"] == null)
{
Response.Redirect("login.aspx");//跳转到登录页面
}
}
}
如果没有效果请设置IE
在IE里按菜单“工具->Internet选项”,弹出“Internet选项”设置窗体,选择“隐私”页,点“高级”按钮,弹出“高级隐私策略设置”窗体,把“覆盖自动Cookie处理”前的钩选上,第一方、第三方都选择“接受”,把“总是允许会话Cookie”钩上即可
根据SessionID设置cookie
public static String GetCookie(String cookeName){
try{
return System.Web.HttpContext.Current.Request.Cookies[cookeName].Value;
}catch{
String cookeValue = System.Web.HttpContext.Current.Session.SessionID.Trim();
System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie(cookeName,cookeValue));
}
return System.Web.HttpContext.Current.Request.Cookies[cookeName].Value;
}