2009-06-10 94 views
1

我正在開發一個ASP.NET MVC應用程序,我需要記錄用戶的登錄歷史記錄。我需要類似Stack Overflow中最後一次看到的東西(我將保留歷史記錄,我不知道是否這樣)。我想知道最好的方法是什麼?記錄用戶登錄到ASP.NET MVC應用程序

  • 的Global.asax:Application_AuthenticateRequest,Application_AuthorizeRequest,在session_start
  • 的Site.Master

任何其他所有人的優點和缺點?

感謝

回答

1

我到底在做這樣的:

我把在保護無效在session_start在Global.asax()和授權程序。

2

我會先創建一個數據庫表來保存的登錄歷史。如果您使用基礎項目,那麼我將轉到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"); 
     } 
2

會員提供商公開了ValidatingPassword事件。我會將審計線路連接到控制器而不是控制器內。爲了更容易,您可以使用WebEvent啓動該功能,然後使用web.config中提供的<heartbeat>功能來捕獲信息,而不必編寫任何代碼來處理該信息。

另請注意,如果您的目標是隻記錄一些失敗的記錄,失敗登錄會自動以默認配置發送到事件日誌。 PS:剛纔重新讀過這個問題。任何你想要攜帶它的方式,Site.Master是做這種事情的錯誤地方。當你插入第二個母版頁時會發生什麼?或者,向模板呈現什麼是模板。

相關問題