簡體   English   中英

asp.net 中的 session 架構

[英]session architecture in asp.net

我有一個看起來像這樣的 object:

public class MySession{

   string UserID {get;set;}
   List<Object1> ListOfObject1 {get;set;}
   List<Object2> ListOfObject2 {get;set;}
   ....
   several other lists....
}

這樣做的好處是我可以寫類似“頁面加載” MySession TheSession = Session["TheSession"] as MySession; 然后在代碼中更輕松地訪問會話的屬性。

目前,這適用於 InProc session,但我希望轉移到 SQL 服務器 session。

進行此更改的最佳方法是什么? I'm thinking of serializing the MySession object into a json string and then letting SQL Server session save the session as a string. 然后,當我重新加載 session 時,只需加載 json 字符串並反序列化它。

我不知道這是否是最有效的方法。 感謝您的建議。

您需要做的就是制作MySession和所有相關的類[Serializable] (二進制序列化)。

ASP.Net 會自動為您序列化它。

如果效率是唯一的問題,我不確定你會獲得多少,除非 object 圖對某些用戶來說相當大。 使用 session 默認值,它是二進制序列化的,這將比您的 JSON 打包更多。

如果您需要 session 位的可讀性(調試?),那么您可以 go 您的路線。

只要你用[Serializable] 屬性標記你的 class 並且它實際上是可序列化的,你不必自己手動序列化。 So long as your web application is configured properly for out-of-process session state management and everything you stick into Session is serializable, everything should work.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM