.NET Core 审计日志
.NET Core Audit Logging
我想在我的 .NET Core 应用程序中实现审计日志记录。
像
[HttpPost, Auditing]
public dynamic SomeApiAction()
{
// API code here
...
}
属性应该能够在执行前后拦截API调用以便记录。
.net core 中是否有任何此类机制作为框架的一部分可用?我不想使用任何第三方组件。
请指教
您可以像这样使用 CustomActionFilter
public class CustomDemoActionFilter : Attribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
var controller = context.Controller as Controller;
if (controller == null) return;
var controllerName = context.RouteData.Values["controller"];
var actionName = context.RouteData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", "onactionexecuting", controllerName, actionName);
var CurrentUrl = "/" + controllerName + "/" + actionName;
bool IsExists = false;
if(CurrentUrl=="/Home/Index")
{
IsExists=true;
}
else
{
IsExists=false;
}
if (IsExists)
{
//do your conditional coding here.
//context.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Index" } });
}
else
{
//else your error page
context.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Error" } });
}
//base.OnActionExecuting(context);
}
public void OnActionExecuted(ActionExecutedContext context)
{
}
}
并且只需将此 customactionfilter 用作您的操作方法的属性,例如
[HttpGet]
[CustomHMISActionFilter]
public IActionResult Registration()
{
//your code here
}
你可以试试Audit.WebApi library which is part of Audit.NET框架。它提供了一个可配置的基础架构来记录与您的 Asp.NET Core Web API.
的交互
例如使用属性:
using Audit.WebApi;
public class UsersController : ApiController
{
[HttpPost]
[AuditApi(IncludeHeaders = true)]
public IHttpActionResult Post()
{
//...
}
}
我想在我的 .NET Core 应用程序中实现审计日志记录。 像
[HttpPost, Auditing]
public dynamic SomeApiAction()
{
// API code here
...
}
属性应该能够在执行前后拦截API调用以便记录。
.net core 中是否有任何此类机制作为框架的一部分可用?我不想使用任何第三方组件。 请指教
您可以像这样使用 CustomActionFilter
public class CustomDemoActionFilter : Attribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
var controller = context.Controller as Controller;
if (controller == null) return;
var controllerName = context.RouteData.Values["controller"];
var actionName = context.RouteData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", "onactionexecuting", controllerName, actionName);
var CurrentUrl = "/" + controllerName + "/" + actionName;
bool IsExists = false;
if(CurrentUrl=="/Home/Index")
{
IsExists=true;
}
else
{
IsExists=false;
}
if (IsExists)
{
//do your conditional coding here.
//context.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Index" } });
}
else
{
//else your error page
context.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "Error" } });
}
//base.OnActionExecuting(context);
}
public void OnActionExecuted(ActionExecutedContext context)
{
}
}
并且只需将此 customactionfilter 用作您的操作方法的属性,例如
[HttpGet]
[CustomHMISActionFilter]
public IActionResult Registration()
{
//your code here
}
你可以试试Audit.WebApi library which is part of Audit.NET框架。它提供了一个可配置的基础架构来记录与您的 Asp.NET Core Web API.
的交互例如使用属性:
using Audit.WebApi;
public class UsersController : ApiController
{
[HttpPost]
[AuditApi(IncludeHeaders = true)]
public IHttpActionResult Post()
{
//...
}
}