Asp.net mvc 使用内置表单身份验证在asp.net mvc中记录自定义操作

Asp.net mvc 使用内置表单身份验证在asp.net mvc中记录自定义操作,asp.net-mvc,authentication,logging,health-monitoring,Asp.net Mvc,Authentication,Logging,Health Monitoring,我正在使用asp.net mvc附带的内置程序。我使用aspnet_regsql向导向SQLServer添加了所有必要的表,并且将它们集成在一起,工作得非常完美。现在我可以添加用户、登录、执行控制授权以及所有这些事情 下一步是在用户执行操作时添加一些基本日志。例如,我想记录谁使用UserAdministration从数据库中删除了一个用户,或者当有人访问了具有受限信息的视图时,这些只是示例 我已经看到,随着身份验证而来的是一个名为aspnetwebventevents的表,但它似乎只用于存储网站

我正在使用asp.net mvc附带的内置程序。我使用aspnet_regsql向导向SQLServer添加了所有必要的表,并且将它们集成在一起,工作得非常完美。现在我可以添加用户、登录、执行控制授权以及所有这些事情

下一步是在用户执行操作时添加一些基本日志。例如,我想记录谁使用UserAdministration从数据库中删除了一个用户,或者当有人访问了具有受限信息的视图时,这些只是示例

我已经看到,随着身份验证而来的是一个名为aspnetwebventevents的表,但它似乎只用于存储网站上发生的异常,并且它是用web.config配置的,并且所有这些都是自动执行的。我只想调用一个类来记录自定义操作,而不必手动填充所有字段:

Logger.Log("Action performed");
并自动存储用户、时间和所有这些字段

我确信必须有一个已经实现的类来做这些事情,我不想重写已经完成的东西

我尝试使用SqlWebEventProvider,它似乎是一个内部调用的类,但这个类似乎是内部的,因此不打算使用它


也许我错了,这不是为了记录自定义操作,我最好用自定义操作创建我自己的表…

我不知道您是否可以用AspNetWebEvents实现这一点,听起来您想要记录特定情况,我认为这不是buld-in功能的目的

您是否尝试过ActionFilters?,您可以使用它进行真正特定的日志记录,例如,您可以检查结果类型,查看用户尝试使用该操作时发生了什么,并且您可以通过ActionExecutedContext访问RoutedData值:

然后,您只需使用此属性装饰要记录的操作:

[LogActionFilter]
public ActionResult Edit(int id)
{
}

我终于这样做了,但我需要创建一个自定义表来记录操作。
[LogActionFilter]
public ActionResult Edit(int id)
{
}