日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC项目 解决session失效

發布時間:2024/10/12 asp.net 116 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC项目 解决session失效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Web.config配置文件

  在Web.config配置文件中,通過sessionState節點上的mode屬性設置

  mode值共分為5種:

  1.InProc:

    mode默認值,只是保存當前應用程序域,重啟服務session保存數據丟失。

    優點:獲取數據快,沒有序列化和反序列化的要求。

   ? ?缺點:占用內存,性能差。

  2.StateServer:

    優點:獨立與IIS服務。

       重啟ASP.NET進程,session依然有效。

    缺點:涉及過多序列化和反序列化。

  3.SQLServer:

    優點:安全,重啟IIS服務后,session數據不會受到影響。

    缺點:處理緩慢,涉及過多序列化和反序列化。

  4.Custom:

    自定義session

  5.Off:

    使session失效

一、配置Web.config配置文件

?

  1.配置web.config文件

    <system.web>

      <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="120" />

    </system.web>

  2.控制面板-管理工具-服務-啟動ASP.NET服務

二、將登錄用戶信息保存到Cookie中 

  1.將用戶信息存儲在session中

    CurrentUser currentmodel = new CurrentUser();

    currentmodel.UserAccount = usermodel.UserAccount;

    currentmodel.Password = usermodel.Password;

    currentmodel.UserID = usermodel.UserID;

    ......
    //用戶信息Session

    Session["User"] = currentmodel;

  2.將用戶信息存儲到cookie中

    Cookie = new HttpCookie("User");

    Cookie["CompanyCode"] = currentmodel.CompanyCode;

    Cookie["DepartmentID"] = currentmodel.DepartmentID;

    Cookie["Password"] = currentmodel.Password;

    ......

    DateTime dtNow = DateTime.Now;

    TimeSpan tsTime = new TimeSpan(0, 10, 0, 0);

    Cookie.Expires = dtNow + tsTime;

    Response.Cookies.Add(Cookie);

  3.根據session是否失效進行判斷,如果session失效,將cookie中的信息賦值給session

    CurrentUser currentUser = Session["User"] as CurrentUser;

    if (Session["User"] == null || currentUser == null)

    {

      HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies["User"];

      if (Cookie != null)

      {

        if (Cookie.Value != "")

        {

          currentUser = new CurrentUser();

          currentUser.CompanyCode = Cookie["CompanyCode"];

          currentUser.DepartmentID = Cookie["DepartmentID"];

          currentUser.Password = Cookie["Password"];

          ......

          Session["User"] = currentUser;

        }

      }

    }

  4.用戶登錄前或注銷登錄時,檢查session是否為空,若不為空,清除cookie

    HttpCookie Cookie = null;

    Cookie = new HttpCookie("User");

    if (Cookie != null)

    {

      Cookie.Expires = DateTime.Now.AddDays(-1);

      Response.Cookies.Set(Cookie);

    }

  注:直接用cookie存儲是存進去的實體對象,所以應該用子鍵的方式進行存儲用戶信息

    //創建實體對象

    CurrentUser user = new CurrentUser();

    //創建cookie對象,將user存在cookie中

    HttpCookie cookie = null;

    cookie = new HttpCookie("User");

    cookie.values["子鍵1"] = user.屬性名1; //子鍵名跟屬性名一致

    cookie.values["子鍵2"] = user.屬性名2;

    cookie["子鍵3"] = user.屬性名3; //values可以省略

?

轉載于:https://www.cnblogs.com/WangShuaishuai/p/7456635.html

總結

以上是生活随笔為你收集整理的ASP.NET MVC项目 解决session失效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。