asp教程.net session 简单测试应用程序
<%@ page language="c#" autoeventwireup="true" codefile="default.aspx.cs" inherits="_default" %>
session测试
cs文件
using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.collections;public partial class _default : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{
//注意当ajax请求aspx页面时,aspx页面应设置为不允许缓存!
response.appendheader("pragma", "no-cache");
response.appendheader("cache-control", "no-cache, must-revalidate");
response.appendheader("expires", "0");
if (request.querystring["ajax"] != null)
{
//ajax返回当前网站session数量
response.write(constants.sessionlist.count.tostring());
response.end();
}
}protected void button1_click(object sender, eventargs e)
{
//添加session
//session["test"] = datetime.now;
session.add("test", datetime.now);
response.redirect(request.url.tostring());
}protected void button2_click(object sender, eventargs e)
{
//移除指定session
//session["test"] = null;
//session.remove("test");//移除所有session 与 session.removeall();功能相同
//session.clear();//终止当前回话状态 注意会触发session_end 与session超时效果相同
//调用此句后,sessionid并没有被重置。
//当仅仅调用此句时(当session超时过期时),如果再刷新当前页面则会一直调用session_start 和 session_end
//除非给session添加值或重置sessionid后,才会退出此状态。
session.abandon();//重置当前sessionid
//如果设置的sessionid与已存在的sessionid重复,则将发生session劫持。
//如不存在则会系统会自动创建新session
//response.cookies.add(new httpcookie("asp.net教程_sessionid", this.textbox1.text));
response.redirect(request.url.tostring());
}
}
constanst.cs
using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.collections;///
/// constants 的摘要说明
///
public class constants
{
public constants()
{
//
// todo: 在此处添加构造函数逻辑
//
}///
/// 当前所有session列表
///
public static hashtable sessionlist = new hashtable();///
/// 当前session个数
///
public static int sessioncount = 0;///
/// 累计session个数
///
public static int sessionallcount = 0;
}global.asax
<%@ application language="c#" %>
void application_start(object sender, eventargs e)
{
// 在应用程序启动时运行的代码
}
void application_end(object sender, eventargs e)
{
// 在应用程序关闭时运行的代码}
void application_error(object sender, eventargs e)
{
// 在出现未处理的错误时运行的代码}
void session_start(object sender, eventargs e)
{
constants.sessionallcount++;
constants.sessioncount++;
constants.sessionlist.add(session.sessionid, datetime.now);
//session["sessionstartdatetime"] = datetime.now;
}void session_end(object sender, eventargs e)
{
constants.sessioncount--;
constants.sessionlist.remove(session.sessionid);
}