2016-07-15 88 views
0

網站使用Angularjs作爲前端調用API(IIS中的Asp.net)。
每個請求都通過Global.asax Start_Session生成新的會話ID。
它應該使用同一個會話給同一個用戶。每個Angularjs http請求集的ASP會話更改

我試圖用這個URL發送GET請求:
$http({method: 'GET', url: 'http://localhost:59893/initSite.aspx'})
我讀這qusetion但答案並不在我的情況有所幫助:
ASP.NET: Session.SessionID changes between requests

+0

您可以檢查請求頭,看它是否有會話ID的Cookie。像Cookie一樣:ASP.NET_SessionId = yza5qg41rdeblnadv1s5tb4m – mattfei

回答

0

我不確定ASP,但使用PHP我發現了API請求的類似問題。您不能依賴ASP/PHP來記錄來自不同客戶端的每個請求上的會話標識,您需要將每個請求的會話標識發佈到API,其中根據數據庫中已登錄的用戶列表檢查會話標識。

這將是使用遠程API處理登錄用戶的正確方法。 選中此相似的回答:Auto Logout when user leaves the application without doing logout action

+0

這是一個解決方案,但不是問題的真正解決,因爲asp.net應該爲每個特定用戶創建會話ID。 –

0

如果你希望你的會話ID是相同的用於特定會話......店裏的東西在會話變量(任何虛擬)每個請求......然後它會給出相同的會話ID ..

它會發生如果你沒有任何東西存儲在你的會話變量..你會一直得到一個新的會話ID爲同一會話本身。

做類似下面

Session["any_name"]="anything"; 
+0

我試圖在Global.asax中創建會話 - Start_Session,但該網站仍然爲每個請求生成不同的sessionID –