簡體   English   中英

asp.net mvc Azure雲服務,我應該使用TempData還是Sessions來保存一些用戶信息或其他內容

[英]asp.net mvc Azure cloud services, should I use TempData or Sessions to hold some user info or something else

我正在開發一個將在Azure雲服務上托管的網站。 我想知道保存已登錄用戶的一些信息的最佳方法(基本上是一些ID,以及一個列表/詞典)。

該應用程序可以部署在多個實例上。 我肯定知道靜態變量不是解決方案。

因此使用Session是安全的,我應該使用TempData(使用peek方法還是僅創建將使用peek方法的包裝器類)或其他方法?

基本上,我想避免調用數據庫來檢索相同的數據,因為它本身是通過Web服務到達的。

TempData中存儲的數據將在下一個請求中清除,它只是一個臨時存儲(例如,當您在重定向時想要維護數據時),因此不是放置對整個會話有效的數據的好地方

成功登錄后,通常以兩種方式存儲用戶信息:

  • 使用會話:這是安全的,因為數據存儲在服務器上(如果使用進程內會話)或另一個服務器(如果使用分布式會話)。 對於雲,您應該使用Azure緩存服務或Azure Redis作為會話提供程序
  • 如果用戶信息量很少,則可以對其進行序列化並放入身份驗證cookie。 在每次請求時,客戶端都會向服務器發送cookie,服務器會將數據反序列化為自定義主體並存儲為當前用戶。 缺點是cookie的大小將比第一種方法大,因此僅在信息量較小時才使用它。 這也是安全的,因為cookie將被加密

TempData僅在HTTP請求時存儲數據。 只要您沒有共享的Session提供程序(例如SQLSessionProvider),Session就不會非常可靠,並且會占用內存。

暫無
暫無

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

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