2017-07-16 63 views
0

我有2個不同的登錄用戶。我在兩個帳戶中都訪問同一頁面,並在同一時間進行刷新。MVC .NET用戶從其他用戶獲取數據(如果兩者都調用相同的函數)

在該網頁上我有Ajax調用其調用函數:

public JsonResult GetAppointments() 
    { 
     var userId = User.Identity.GetUserId(); 

     var eventList = from a in db.Appointments 
         where a.UserId == userId 
         select new 
         { 
         ... 

所以應該返回不同的約會,基於用戶ID。

但由於某些原因,一個用戶從其他用戶獲取數據。 (在頁面上我得到了兩個用戶相同的數據)

它看起來像從第一用戶佔用線程函數調用,以及第二用戶從該線程獲得的數據,而不是從自己的函數調用。

任何人都知道,這怎麼可能,爲什麼會出現這種情況?

編輯: 當這種情況發生時,我擊退第二個用戶並得到:「反僞造cookie標記和表單字段標記不匹配。」錯誤。似乎第二個用戶也得到了來自第一個用戶的表單字段令牌,不知道如何。

+1

它與你的方法無關。同時在2個不同的瀏覽器中嘗試它。可能您已註銷並使用以前的帳戶使用不同的選項卡保持打開狀態並登錄。這就是爲什麼你會得到相互矛盾的結果。 – AHBagheri

+0

是的,我在2個不同的瀏覽器中同時嘗試過,使用2個不同的帳戶登錄,然後進入同一頁面,並得到此問題。我清除了緩存,之前確定的cookie,並多次測試,以確保問題存在,並且每次都會發生 –

回答

0

我發現問題了。

在控制我有:

OutputCache(NoStore = true, Duration = 1, VaryByParam = "") 

我改變持續時間= 0和現在的一切工作正常。