|
username=cookie["UserName"];
int AccessCount=int.Parse(cookie["AccessCount"]) + 1;
cookie["AccessCount"]=AccessCount.ToString();
cookie.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cookie);
//填入Session信息
Session["UserName"] = username;
Session["AccessCount"] = AccessCount;
}
else//Cookie为空
Response.Redirect("SignIn.aspx",true);
}
Response.Write("Welcome " + (string)Session["UserName"] + "<BR>");
Response.Write("You have visited for " + Session["AccessCount"].ToString() + " times" + "<BR>");
//下面的语句使用了Request.QueryString属性取得附在URL中的参数
Response.Write("QueryString Message=" + Request.QueryString["Message"]);
}
页面的Page_Load事件在每次页面Postback回服务端后均会触发,值得注意的是,其Page_Load触发时间要先于服务器控件事件(例如按钮的单击事件)。请看下面有关ASP.NET页面的生命周期的简要叙述如下,详情请参见MSDN网站:
1、Initialization-页面初始化(初始化页面及其控件);
2、Load View State-载入视图状态(载入视图状态到页面,视图状态存储了上次访问后页面的状态信息,该事件仅在页面Postback后触发);
3、Load Postback Data-载入返回数据(载入控件被修改的属性信息并予以更新,该事件也仅在页面Postback后触发);
4、Load-载入(即Page_Load事件,该事件发生表示页面已经恢复到上次访问时的状态);
5、Raise Postback Event(那些属性值发生了改变的服务器控件将触发Postback事件,注意,该阶段并未使用视图状态的信息,该事件也仅在页面Postback后触发)
6、Save View State(保存页面的视图状态信息)、
7、Render(产生最终显示给客户端的HTML代码)。
在这里,我们在Protected.aspx页面的Page_Load事件处理函数添加了页面的访问控制代码,其先检查Session,假如Session中找不到授权信息(这里是Session[“UserName”]不为空),再试图从获取客户端的Cookie信息来判断是否用户已经登入过。
最后,简单提一下删除Cookie和清除Session的代码,你可以在Protected.aspx页面上添加一个按钮,然后将它添加到这个按钮的Click事件中,就可以实现注销功能:
System.Web.HttpCookie cookie= Request.Cookies["UserInfo"];
if(cookie!=null)//Cookie不为空
{
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
上一页 [1] [2] [3] [4] 下一页 [C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|