我的現在的平臺,使用webservice + webfrom開發的,現在遇到了一個問題,那就是是同一個賬號,在不同的電腦上登錄的時候,有時會出現查詢資訊錯亂的現象,比如賬號A 分別在B和C電腦上登錄,B電腦查詢的
是條件B,C電腦查詢的是條件C,現在卻B電腦顯示條件C查詢出來的資料,為什么會這樣?不知道是webservice的原因還是webform,或者其他原因導致的,有沒有遇到過類似問題的前輩,請幫忙解答一下,或者提供一下解決思路,非常謝謝~(90度鞠躬)
uj5u.com熱心網友回復:
呀,你這不是B查詢,服務端然后回傳資料給B。C查詢,資料回傳給C嗎?好錯亂,不如單點登錄吧,同一個賬號只允許一個IP登錄。uj5u.com熱心網友回復:
可能你在登陸后 保存用戶狀態的時候 或者條件的時候 使用的是static變數..uj5u.com熱心網友回復:
就用這種辦法吧,單點登錄,會話不同就踢掉舊的
uj5u.com熱心網友回復:
我現在手頭上的專案,也是單點登錄。而且還是后臺拉起來的,還要輪詢后臺登錄情況,后臺退出,也跟著退出。另,QQ登錄也是直接踢掉已經登錄的狀態。QQ大廠肯定不存在技術問題,但為什么這么做。除了狀態不一樣外,肯定還有很多其他的場景不好處理。所以,最簡單也最合理的,就是SSO。
uj5u.com熱心網友回復:
啊噢,不好意思,樓主,我以為是你的發言,只是建議哈,自己定。你這個是不是應該,服務端回傳的資料,得對應真正發出請求的IP地址。uj5u.com熱心網友回復:
單點不單點登錄 不重要 重要的是 你要找到 你現有的bug 而不是 躲避bug 好好查查代碼吧 我也懷疑 static 變數uj5u.com熱心網友回復:
有遇到過這種情況,就是static變數保存里用戶名。B用戶登錄,把靜態變數賦值,C用戶登錄,再重新賦值靜態變數。
這個時候B用戶就會使用這個新的靜態變數來查詢資料了。
靜態變數資料是保存在服務器中,跟會話沒有關系,一次賦值,其他會話都會使用這個值。
uj5u.com熱心網友回復:
webservice還要存變數??這是什么鬼設計思路。從webservice查詢資料,不都是臨時提供用戶ID和查詢條件的嗎?
uj5u.com熱心網友回復:
跟蹤除錯下。uj5u.com熱心網友回復:
方法里面只存了最新的狀態吧a=b的查詢
a=c的查詢
b和c都回傳c的查詢
uj5u.com熱心網友回復:
帖子玩的不是很熟,不會一個一個回復,大家的建議和思路我都看到了,謝謝
我再看一下是否有static變數,另外,我們需求是不要單點登錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/68104.html
標籤:C#
