我正在開發一個ASP.NET MVC應用程序,我需要記錄用戶的登錄歷史記錄。我需要類似Stack Overflow中最後一次看到的東西(我將保留歷史記錄,我不知道是否這樣)。我想知道最好的方法是什麼?記錄用戶登錄到ASP.NET MVC應用程序
- 的Global.asax:Application_AuthenticateRequest,Application_AuthorizeRequest,在session_start
- 的Site.Master
任何其他所有人的優點和缺點?
感謝
我正在開發一個ASP.NET MVC應用程序,我需要記錄用戶的登錄歷史記錄。我需要類似Stack Overflow中最後一次看到的東西(我將保留歷史記錄,我不知道是否這樣)。我想知道最好的方法是什麼?記錄用戶登錄到ASP.NET MVC應用程序
任何其他所有人的優點和缺點?
感謝
我到底在做這樣的:
我把在保護無效在session_start在Global.asax()和授權程序。
我會先創建一個數據庫表來保存的登錄歷史。如果您使用基礎項目,那麼我將轉到AccountController的LogOn操作並放置代碼以在FormsAuth.SignIn行之後將記錄寫入歷史記錄表。
if (!ValidateLogOn(userName, password))
{
return View();
}
FormsAuth.SignIn(userName, rememberMe);
//*** Write userName to history table *****
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
會員提供商公開了ValidatingPassword
事件。我會將審計線路連接到控制器而不是控制器內。爲了更容易,您可以使用WebEvent
啓動該功能,然後使用web.config
中提供的<heartbeat>
功能來捕獲信息,而不必編寫任何代碼來處理該信息。
另請注意,如果您的目標是隻記錄一些失敗的記錄,失敗登錄會自動以默認配置發送到事件日誌。 PS:剛纔重新讀過這個問題。任何你想要攜帶它的方式,Site.Master是做這種事情的錯誤地方。當你插入第二個母版頁時會發生什麼?或者,向模板呈現什麼是模板。