防止session失效的最佳效果

  很多时候用到Session都比较厌烦,主要还因为很容易就丢失了!
  解决的方法有:
  1、设置Session时间;
  在Global.ascx文件中的设置时间: Session.Timeout = 600;

  2、放在服务器里:
  web.config中配置 <sessionstate mode="stateServer">后,在服务中启动 asp.net state service (asp.net状态服务)
  除了以上两种方法外,就是Session + Cookies !双重保险。废话不多说,直接看代码就知道了:

用户登录实例
   
     
public static bool Islogin( string Uname, string Pwd, bool writecookie)
{
bool brt = false ;
com.csfqw.passport.API wsLogin
= new NT.Data.SqlServer.com.csfqw.passport.API();
DataSet ds
= wsLogin.IsLogin(Uname, Pwd);

if (ds.Tables[ 0 ].Rows.Count > 0 )
{
DataRow dr
= ds.Tables[ 0 ].Rows[ 0 ];
System.Web.HttpContext.Current.Session[
" username " ] = dr[ " username " ].ToString();
brt
= true ;
if (writecookie)
{
NTCookies cookie
= new NTCookies( " NetUser " );
cookie.WriteCookie(
" username " , Uname);
cookie.SetExpires(
60 );
cookie.Domain
= " csfqw.com " ;
cookie.RespnseCookies();
brt
= true ;
}
}
return brt;
}

 

用户退出实例
   
     
public static void UserLoginOut()
{
// NTCookies cookie = new NTCookies("NetUser");
// cookie.ClearCookies();
// HttpContext.Current.Session.Remove("username");

/// 退出用户
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[ " NetUser " ];
if (cookie != null && cookie[ " username " ] != null )
{
cookie.Expires
= DateTime.Now.AddDays( - 1.0d );
cookie.Domain
= " csfqw.com " ;
System.Web.HttpContext.Current.Response.AppendCookie(cookie);
}

/// 撤销专家
HttpCookie expertcookie = System.Web.HttpContext.Current.Request.Cookies[ " IsExpert " ];
if (expertcookie != null && expertcookie[ " Expert " ] != null )
{
expertcookie.Expires
= DateTime.Now.AddDays( - 1.0d );
expertcookie.Domain
= " csfqw.com " ;
System.Web.HttpContext.Current.Response.AppendCookie(expertcookie);
}
HttpContext.Current.Session.Remove(
" username " );
HttpContext.Current.Session.Remove(
" Expert " );
}

 

你可能感兴趣的:(session)