2017-11-18 214 views
-1

會話有一種特殊的行爲,我想在MVC 5MVC鎖定和解鎖一個呼叫

我有一個AJAX調用,調用一個緩慢的第三方API頁面加載後開始實現。 流程如下:

  1. 控制器接收呼叫。
  2. 控制器訪問一些會話資源。
  3. 控制器調用第三方API。
  4. 控制器更新會話變量。
  5. 控制器應答請求。

我不能信息返回給客戶端,因爲它包含敏感數據,所以我不能讓這個在方式隔開呼籲召開在客戶端的數據,然後調用第三方API無狀態的行動,因爲我會必須將呼叫結果返回給客戶端,以便進行會話更新。

這是我想什麼acheive:

  1. 控制器接收呼叫。
  2. 控制器訪問一些會話資源。
  3. 解鎖會話以允許共享呼叫訪問它。
  4. 控制器調用第三方API。
  5. 鎖定會話並更新會話變量。
  6. 控制器應答請求。

是不是可以接受的?

感謝您的幫助。

回答

0

好吧,經過一些嘗試和錯誤後,我找到了一個解決方案,但它很醜。

我所做的就是將請求參數緩存在請求的GUID中。將GUID傳遞給客戶端,該客戶端將調用無狀態控制器,該控制器將調用速度較慢的第三方API並且不會保持其他Ajax調用。一旦完成,將guid返回給客戶端,該客戶端將執行第三次ajax調用,將api結果應用於會話變量,然後刷新html。

不是最好的,但完美的工作到目前爲止我會做一些更改重用緩存的請求。