簡體   English   中英

會話和內存中的對象

[英]Session and objects in memory

我在這里很困惑。 好的,所以我試圖創建一個會話對象,我們可以用來存儲一些信息。

我的計划是每當用戶登錄Facebook(將他們重定向回我們的網站之后)時,都創建一個新的FacebookSession對象。 我可以通過使用他們在登錄Facebook后由facebook SDK創建的自動生成的cookie來為此設置狀態。 因此,當他們回到服務器端並創建我的FacebookSession對象並設置包含該用戶的Facebook帳戶所需信息的cookie信息(用戶ID,令牌等)時,我可以希望獲得該cookie。

我不太了解會話狀態,並且也涉及到與頁面相關的線程。 因此,我不能檢查每個頁面上的現有會話對象,還是當您逐頁瀏覽時丟失它? 可以說我在用戶返回時創建了這個初始的FacebookSession對象,然后立即將它們重定向到另一個頁面Response.Redirect。 我會丟失那個物體嗎? 我覺得對嗎? 因為一個新的頁面請求在IIS中為該用戶生成了一個新線程? 然后,從擦除內存中創建的所有對象開始,您將一頭白手起家。

因此,我需要將其保留在數據庫中,然后使用諸如GetCurrentSession之類的方法將其持久保存在數據庫中,然后以某種方式查找該當前用戶並嘗試在表中獲取當前會話信息,比如說FacebookSession,我可以在其中存儲其facebookUserID,令牌等。

對?

最后,在任何時候,我怎么知道如何在數據庫中檢查該用戶? 我需要某種唯一的ID? 因此,我要做的是添加一個Pk列,該列實際上將利用我們網站上每個用戶都擁有的現有sessionID。這是他們訪問我們網站時獲得的總體全球訪問會話。

這樣一來,我就可以通過他們的“全局會話ID”在我的表格中查找自己的Facebook會話,以唯一地標識該會話是否存在。 但是最終我遇到的問題是現在要從我的FacebookSession.cs對象調用GetCurrentSession(),我需要以某種方式將其傳遞給該全局ID。 我可以通過構造函數來做到這一點(我不是將其做成單例)。 但是現在,該對象和其他幾個對象都依賴於查找用戶的Facebook會話所需的全局ID。 好吧,如果我們想重用我在其他項目中創建的,不想使用全局會話作為PK的庫/包裝器,那我就有點麻煩了。

所以這是我現在頭疼的問題。 如果我沿着正確的道路前進,並且如果我對內存,IIS,線程和會話狀態的攻擊方式正確,那么我幾乎只需要一些意見和驗證。

我想您應該從MSDN檢查此說明

暫無
暫無

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

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