Avi*_*i-B 5 logging filter audit-trail asp.net-web-api asp.net-core
我使用创建了 UserActivity 日志记录或审核跟踪ServiceFilter。我无法使用操作过滤器,因为我需要传递依赖项。
我成功记录了用户的活动。
public class ActivityLog : ActionFilterAttribute
{
private ILogUserActivityService _service;
//injecting specified service to insert the log in database.
public ActivityLog(ILogUserActivityService service)
{
_service = service;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Stores the Request in an Accessible object
var request = filterContext.HttpContext.Request;
// Generate the log of user activity
LogUserActivity log = new LogUserActivity()
{
// Username. shall be changed to UserId later afteter Auth management.
UserName = filterContext.HttpContext.User.Identity.Name ?? "Anonymous",
// The IP Address of the Request
IpAddress = request.HttpContext.Connection.RemoteIpAddress.ToString(),
// The URL that was accessed
AreaAccessed = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(request),
// Creates Timestamp
TimeStamp = DateTime.Now
};
//saves the log to database
_service.SaveLog(log);
// Finishes executing the Action as normal
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以[ServiceFilter(typeof(ActivityLog))]在控制器上方添加,效果非常好。
数据库记录:
但现在我想添加更多信息。我将再添加一个名为“描述”的列,在其中我将能够输入有关用户删除的内容、他所做的更改、他添加的内容(以及一些属性)等的描述。
我期待类似Log.information(...)Serilog 的东西。那么我怎样才能实现这样的目标呢?
| 归档时间: |
|
| 查看次数: |
12425 次 |
| 最近记录: |