2014-11-01 19 views
0

我寫在線洽談 U讀全部由我自己 ,所以我寫了登錄,並設置AuthCookie,我並鑑別如何檢查,如果用戶仍然在線ASP MVC

現在我需要檢查所有的N次該用戶在線。

我有表名爲Users_Online(ID,USER_ID)數據庫 當我登錄(或當我來到聊天頁面(如果我有驗證的cookie) - 我在表Users_online集行

但如何我。可以刪除行,當我出去(不是唱出來的,只是關閉標籤頁/瀏覽器)??? 我嘗試在Global.asax中使用的Session_OnStart /的Session_OnEnd - 但去年(的Session_OnEnd) - 不工作正確

,請幫助。我的傢伙

+0

您無法檢測用戶是否關閉瀏覽器的窗口。例如,您可以考慮在閒置一段時間後斷開連接。 – 2014-11-01 15:17:28

+0

好的。你可以提供代碼,例子或鏈接嗎?謝謝btw快速回答 – 2014-11-01 15:28:47

+0

不是真的,有太多的方法來做到這一點。例如Google for ASP.NET MVC非活動會話關閉。 – 2014-11-01 15:37:54

回答

0

好吧我解決我的問題(我希望))) 如果有人需要一個例如:

在Global.asax文件中,你需要有2種方法:

public void Session_OnStart() 
{ 
    //here you do something 
} 
public void Session_OnEnd() 
{ 
    //your logic 
} 

而且在Web.Config中,你需要寫:

<sessionState mode="InProc" cookieless="false" timeout="##Here you write timeout for session"></sessionState> 

好運

0

如果你想做正確的嘗試使用SignalR(signalr.net

Session_OnEnd不會觸發r當有人關閉瀏覽器:)

+0

是的 - 但是如果你在會話超時時間2-3分鐘 - 你可以檢查用戶是否仍然在線。是的 - 是的 - SignalR - 最好和正確的方式 - 但任務是不使用的東西 - 只有Webservices/WebAPI - 它從研究 – 2014-11-02 09:56:36

+0

只是任務如果你做2-3分鐘的會話超時,用戶將不得不登錄2-3分鐘的空閒時間。這個解決方案可以通過課程。 – 2014-11-02 18:32:06

+0

我設置了2天的cookie,並且在用戶做了一些事情之後2-3分鐘的空閒時間之後 - 我的身份驗證過濾器只設置了新會話 – 2014-11-02 20:29:31

相關問題