2013-04-10 54 views
3

我的問題是,一旦Session_End在我的Global.asax中執行,HttpContext.Current對象不再存在 - 可能會像預期的那樣,我會想象的。所以,我試圖做的是一旦會話結束,爲當前登錄的用戶更新我的登錄表並將他們的LoggedIn狀態設置爲False。這裏是我的Session_End中:ASP.NET MVC4 - Session_End - 如何在Global.asax的Session_End中獲取當前登錄的用戶名?

protected void Session_End(object sender, EventArgs e) 
{ 
    Helpers.OperationContext.UpdateIndividualLogin(); 
} 

正如你可能已經猜到了,我可以嘗試通過:

System.Web.HttpContext.Current.User.Identity.Name 

但此對象不再存在,因爲我只能想象,它已經被處理掉。那麼,有什麼方法可以抓住當前(或之前)當前的用戶名嗎?

+2

只是一個評論:如果您正在考慮稍後部署到Web場或在SQL Server或其他變體中使用會話狀態,請注意Session_End事件可能不會在某些配置上觸發 – 2013-04-10 22:55:33

+0

感謝那篇信息。我今晚的研究也發現了這些信息。 – 2013-04-11 02:05:13

回答

3

你可以通過在會話中存儲你想要的信息(在這種情況下是用戶名)來做到這一點。您可以在用戶通過身份驗證時進行存儲。

+0

這工作完美。謝謝。 – 2013-04-11 14:49:12

相關問題