using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/*
* 事实上,session是与cookie相关的,浏览器的存有sessionId,当然可能不叫这个名字,他可以存在于进程中,也可能存在
* 于硬盘,实际上,.net或者java的session都是存在于进程中,当进程关闭,session并不会销毁,而是等待session的生命周期的结束
* 当同一个浏览器浏览两个页面的时候,cookie共享,session相同,当两个ie7浏览器同时打开两个不同的窗口的时候session也是相同,
* 而关掉一个再去打开另一个,这时session不同 而firefox不管是开启新的tab 还是新窗口 都是相同的
*/
public class SessionHandler
{
//session集合,用来存各个浏览器的session
public static IDictionary<string, IDictionary<string, object>> sessions = new Dictionary<string, IDictionary<string, object>>();
public SessionHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//获取到某一浏览器的session
public static IDictionary<string, object> getSession(string sessionId) {
if (sessions.ContainsKey(sessionId))
{
return sessions[sessionId];
}
else {
IDictionary<string, object> session = new Dictionary<string, object>();
return session;
}
}
//创建一个Cookie()
public static HttpCookie createHttpCookie(HttpRequest request,HttpResponse response) {
if (request.Cookies["sessionId"] == null)
{
string guid = Guid.NewGuid().ToString();
HttpCookie cookie = new HttpCookie("sessionId", guid);
response.SetCookie(cookie);
return cookie;
}
else {
return request.Cookies["sessionId"];
}
}
//创建一个session
public static IDictionary<string,object> createSession(HttpRequest request,HttpResponse response) {
string sessionId = string.Empty;
if (request.Cookies["sessionId"] != null)
{
sessionId = request.Cookies["sessionId"].Value;
}
else {
HttpCookie cookie = createHttpCookie(request, response);
sessionId = cookie["sessionId"];
}
return getSession(sessionId);
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
/*
* 事实上,session是与cookie相关的,浏览器的存有sessionId,当然可能不叫这个名字,他可以存在于进程中,也可能存在
* 于硬盘,实际上,.net或者java的session都是存在于进程中,当进程关闭,session并不会销毁,而是等待session的生命周期的结束
* 当同一个浏览器浏览两个页面的时候,cookie共享,session相同,当两个ie7浏览器同时打开两个不同的窗口的时候session也是相同,
* 而关掉一个再去打开另一个,这时session不同 而firefox不管是开启新的tab 还是新窗口 都是相同的
*/
public class SessionHandler
{
//session集合,用来存各个浏览器的session
public static IDictionary<string, IDictionary<string, object>> sessions = new Dictionary<string, IDictionary<string, object>>();
public SessionHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//获取到某一浏览器的session
public static IDictionary<string, object> getSession(string sessionId) {
if (sessions.ContainsKey(sessionId))
{
return sessions[sessionId];
}
else {
IDictionary<string, object> session = new Dictionary<string, object>();
return session;
}
}
//创建一个Cookie()
public static HttpCookie createHttpCookie(HttpRequest request,HttpResponse response) {
if (request.Cookies["sessionId"] == null)
{
string guid = Guid.NewGuid().ToString();
HttpCookie cookie = new HttpCookie("sessionId", guid);
response.SetCookie(cookie);
return cookie;
}
else {
return request.Cookies["sessionId"];
}
}
//创建一个session
public static IDictionary<string,object> createSession(HttpRequest request,HttpResponse response) {
string sessionId = string.Empty;
if (request.Cookies["sessionId"] != null)
{
sessionId = request.Cookies["sessionId"].Value;
}
else {
HttpCookie cookie = createHttpCookie(request, response);
sessionId = cookie["sessionId"];
}
return getSession(sessionId);
}
}