zoukankan      html  css  js  c++  java
  • 防止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");
    }
  • 相关阅读:
    [转] 百万级数据查询优化
    vs生成失败不报错
    C# 编译器错误对应代码详细信息
    使用XSL 样式表无法查看XML 输入。请更正错误然后单击刷新按钮
    vs中release模式调试和错误:CA0503:无法显示额外的代码分析警告或错误
    sp_executesql的用法
    一个for循环根据条件可以递增或递减
    Lc.exe已退出 代码为1
    将所有输出窗口文本重定向到即时窗口
    两步解决《内部服务器错误:500》
  • 原文地址:https://www.cnblogs.com/cancer_xu/p/1666293.html
Copyright © 2011-2022 走看看