写了个缓存 Session 的类

转载 2006年06月09日 17:53:00

 

    public class SessionCache
    
{
        
Get New Cache Table

        
public static void SessionStart(DataTable table, string strSessionId, string strHostAddress, string strPlatForm, string strBrowserType, DateTime dtNow)
        
{
            DataRow row 
= table.NewRow();

            DateTime now 
= DateTime.Now;

            row[
"SessionId"= strSessionId;
            row[
"HostAddress"= strHostAddress;
            row[
"PlatForm"= strPlatForm;
            row[
"BrowserType"= strBrowserType;
            row[
"StartTime"= dtNow;

            table.Rows.Add(row);
        }


        
public static void SessionEnd(DataTable table, string strSessionId, DateTime dtNow)
        
{
            DataRow[] rows 
= table.Select(string.Format("SessionId = '{0}'", strSessionId));

            
if( rows.Length == 0 )
                
return;

            rows[
0]["EndTime"= dtNow;

            
string connString = ConfigurationSettings.AppSettings["ConnString"];
            
using( SqlConnection conn = new SqlConnection(connString) )
            
{
                SqlCommand cmd 
= new SqlCommand();
                cmd.Connection 
= conn;

                
if( rows[0]["UserCode"!= DBNull.Value )
                
{
                    cmd.CommandText 
= "INSERT INTO SessionLog(SessionId, UserCode, HostAddress, PlatForm, BrowserType, StartTime, LoginTime, EndTime) VALUES(@SessionId, @UserCode, @HostAddress, @PlatForm, @BrowserType, @StartTime, @LoginTime, @EndTime)";
                    cmd.Parameters.Add(
"@UserCode", Convert.ToInt32(rows[0]["UserCode"].ToString()));
                    cmd.Parameters.Add(
"@LoginTime", Convert.ToDateTime(rows[0]["LoginTime"].ToString()));
                }

                
else
                
{
                    cmd.CommandText 
= "INSERT INTO SessionLog(SessionId, HostAddress, PlatForm, BrowserType, StartTime, EndTime) VALUES(@SessionId, @HostAddress, @PlatForm, @BrowserType, @StartTime, @EndTime)";
                }


                cmd.Parameters.Add(
"@SessionId", rows[0]["SessionId"].ToString());
                cmd.Parameters.Add(
"@HostAddress", rows[0]["HostAddress"].ToString());
                cmd.Parameters.Add(
"@PlatForm", rows[0]["PlatForm"].ToString());
                cmd.Parameters.Add(
"@BrowserType", rows[0]["BrowserType"].ToString());
                cmd.Parameters.Add(
"@StartTime", Convert.ToDateTime(rows[0]["StartTime"].ToString()));
                cmd.Parameters.Add(
"@EndTime", Convert.ToDateTime(rows[0]["EndTime"].ToString()));

                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }


            table.Rows.Remove(rows[
0]);
        }


        
public static void UserLogin(DataTable table,string strSessionId, int intUserCode, string strUserName, DateTime dtNow)
        
{
            DataRow[] rows 
= table.Select(string.Format("SessionId = '{0}'", strSessionId));

            
if( rows.Length == 0 )
                
return;

            rows[
0]["UserCode"= intUserCode;
            rows[
0]["LoginName"= strUserName;
            rows[
0]["LoginTime"= dtNow;
        }

    }


    public class Global : System.Web.HttpApplication
    
{
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.IContainer components = null;

        
public static string ErrorMessage = "NULL";

        
public Global()
        
{
            InitializeComponent();
        }
    
        
        
protected void Application_Start(Object sender, EventArgs e)
        
{
            
try
            
{
                Application[
"SessionCount"= 0;
                Application[
"SessionCache"= SessionCache.CreateCacheTable();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }

 
        
protected void Session_Start(Object sender, EventArgs e)
        
{
            
try
            
{
                Application.Lock();
                Application[
"SessionCount"= (int)Application["SessionCount"+ 1;
                SessionCache.SessionStart(
                    (System.Data.DataTable)Application[
"SessionCache"], 
                    Session.SessionID, 
                    Request.UserHostAddress, 
                    Request.Browser.Platform, 
                    Request.Browser.Type, 
                    DateTime.Now
                    );
                Application.UnLock();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }


        
protected void Application_BeginRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_EndRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
        
{

        }


        
protected void Application_Error(Object sender, EventArgs e)
        
{

        }


        
protected void Session_End(Object sender, EventArgs e)
        
{
            
try
            
{
                Application.Lock();
                Application[
"SessionCount"= (int)Application["SessionCount"- 1;
                SessionCache.SessionEnd(
                    (System.Data.DataTable)Application[
"SessionCache"], 
                    Session.SessionID, 
                    DateTime.Now
                    );
                Application.UnLock();
            }

            
catch(Exception ex)
            
{
                Global.ErrorMessage 
= ex.Message + "<br>" + ex.Source + "<br>" + ex.StackTrace;
            }

        }


        
protected void Application_End(Object sender, EventArgs e)
        
{

        }

            
        
Web 窗体设计器生成的代码
    }

 

http://weboy.cnblogs.com/archive/2006/06/06/418668.html

相关文章推荐

给自己公司的项目写了两个功能 1.将对象 写入本地 缓存 2.去本地的缓存放到对象中

废话buduoshu //讲一个对象存储到本地缓存里面 public static void setObjectToSharedpreferences(Ob...

写了一个模版矩阵类,学到了很多东西

/************************************************************************/ /* 模版矩阵类,支持基本的数据类型,和stl的复...

最近在写导出excel表格的代码,发现网上大部分代码都是导出简单格式的excel,所以自己顺便就写了一个导出复杂表格的工具类,有些代码是借鉴网友的,同时也谢谢分享代码的朋友们.

最近在写导出excel表格的代码,发现网上大部分代码都是导出简单格式的excel,所以自己顺便就写了一个导出复杂表格的工具类,有些代码是借鉴网友的,同时也谢谢分享代码的朋友们.

session机制,缓存,安全

  • 2014-05-06 19:41
  • 11KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)