我正在开发ASP.NET MVC应用程序,我需要记录用户登录的历史记录。我需要类似于最后一次在Stack Overflow中看到的东西(我将保留历史,我不知道是否这样做)。我想知道最好的方法是什么?
任何其他人,每个人的利弊?
由于
答案 0 :(得分: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");
}
答案 1 :(得分:2)
会员提供商公开ValidatingPassword
事件。我会将审计连接到控制器而不是控制器内部。为了使这更容易,您可以将WebEvent
关闭,然后使用<heartbeat>
中提供的web.config
功能来捕获信息,而不必编写任何代码来处理此问题
另请注意,如果您的目标是只记录一些失败记录,则失败的登录会自动发送到具有默认配置的事件日志。
PS:重新阅读这个问题。无论你想要携带它,Site.Master都是做错的地方。当你介入第二个母版页时会发生什么?或者,向模板渲染模板的内容。
答案 2 :(得分:1)
我结束了这样做:
我在protected void Session_Start()和授权例程中输入了global.asax。