簡體   English   中英

限制對Asp.Net應用程序的並發訪問

[英]Limit concurrent access to Asp.Net application

我想限制對Internet或Intranet Web應用程序的並發訪問。

我希望能夠允許一定數量的並發訪問,比方說,我希望使用相同的用戶名最多允許20個並發訪問。

我可以想象在登錄時創建一個會話,然后通過增加計數器將其保存到數據庫中,但是如果用戶注銷,則無法從數據庫中刪除該會話並減少計數器,因為用戶可能只是關閉瀏覽器。

伙計們,您認為最好的方法是什么?

謝謝,

正確的是,您不知道用戶是殺死了他的瀏覽器還是拔出了電源線。

創建一個計時器,每30秒執行一次Ajax調用並將其記錄下來。 如果用戶60秒鍾內不在此日志中,請在服務器上將其丟棄。
這不會阻止某人在夜間打開瀏覽器並占用一個插槽。

還有另一個答案提到“最后一個活動”字段。 另一方面,當有人需要讓瀏覽器保持打開狀態以查看某物超過超時時間(分鍾)時,這種情況會變得混亂。

如果由於用戶/超時限制而將某人趕出去; 我認為,如果再次打開某個插槽,讓它們完全透明地自動重新登錄會很好。

不用考慮太多,我相信這種解決方案會帶來其他問題。

刪除:
正如我評論的(20個用戶),您真的在解決正確的問題嗎?

您可能希望會話中有一個“ lastactive”字段。 當某人嘗試登錄或以其他方式創建會話時,您可以查詢一段時間(例如15分鍾)內所有活動的會話,並使用結果計數告訴您有多少個並發會話處於活動狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM