C# 防止cookie失效

很多时候用到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");

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值