2017-05-05 120 views
0

我有一個最近開始遇到問題的Web表單應用程序。應用程序部署在SharePoint上。我們有多個用戶將數據輸入到調度程序中。在多個用戶之間傳遞頁面間參數

每個用戶都有權訪問不同的設施,我一直在使用HttpRuntime.Cache["FacN"]值將設施號傳遞給用戶。

在調度程序窗體上,我通過將隱藏字段設置爲該緩存值來過濾LinqToSql連接。調度程序應該只顯示該設施的數據。

它工作正常,直到我們有幾個用戶在同一時間輸入數據(在IE,SharePoint服務器)。如果2個用戶同時輸入數據 - 那麼他們會看到來自不同設施的事件。

我也試過使用HttpContext.Current.Session["FacN"] - 但在那種情況下,它並沒有保留設施的價值。請告訴我如何通過設施參數?

+0

緩存是所有用戶共享的,這就是它的目的。會話是針對每個用戶的,但是您需要確保實際識別用戶,以便他們在下一次操作中恢復會話。閱讀會話如何工作以及需要做什麼才能使其工作。 –

+0

謝謝。我們使用的是SharePoint,既不是cookies也不是會話。我不知道還有什麼可以嘗試的。我已將它切換爲使用查詢字符串,但需要找到一種方法將參數傳遞迴默認頁面而不使用查詢字符串。 – Alla

+0

我認爲會話狀態是正確的使用方法,所以我建議試着弄清楚爲什麼它不適合你。從https://msdn.microsoft.com/en-us/library/ff648090.aspx開始閱讀文檔可能會爲您提供一些線索。 –

回答

0

您可以使用FacN添加時間戳變量。

  1. 第一個用戶和第二個用戶同時獲得帶有時間戳的FacN。
  2. 第一個用戶更新FacN,時間戳將被更改。
  3. 第二個用戶想更新FacN,需要比較時間戳,如果不同則返回更新失敗。