簡體   English   中英

asp.net中的靜態變量對所有用戶都通用嗎?

[英]Is static variable in asp.net common to all users?

我想擁有一種靜態變量,但對於每個用戶會話都是隔離的,因此asp.net中的靜態變量是否對所有用戶通用?

如果是,是否可以輕松地模擬我想要的內容而無需顯式使用用戶會話? 我不能像使用MVC那樣使用Viewstate(或者我弄錯了?)。

static變量對於所有會話都是通用的。

如果要保留每個用戶會話數據,則可以使用以下三個選項:

  • 使用內置的Session處理。
  • 設置一個cookie。
  • 將數據作為發布到服務器的隱藏表單字段進行傳遞(無論如何對於您擁有表單的地方都有效)。

該會話(通過Session["someKey"]到達)是通過ASP.NET在用戶瀏覽器中設置cookie來實現的,該cookie唯一標識該會話。 然后使用該ID查找服務器內存中保存的正確的會話數據集。 使用Session的最大優點是數據不可見,也無法為用戶操縱。 最大的缺點是,當應用程序池回收時,所有內容都會丟失。

設置cookie可以減輕服務器的負擔,但是數據是可見的,並且可以由用戶操縱。 如果數據敏感,則必須對其進行加密。 Cookie易於保留更長的時間。

將數據作為隱藏的表單字段進行傳遞實際上只是一種模仿ViewState的方法。 例如,使用更新表單來傳遞要更新的記錄的ID是很好的,但對於其他很多事情則不是。

靜態內容在ASP.NET中很常見,而沒有本地化到會話中。

我將其留給其他人來提出一種無需使用會話狀態即可模擬會話狀態的方法。

暫無
暫無

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

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