src/Admin/Web/Core/AuditingHandler.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Diagnostics;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Logging;
using NetModular.Lib.Auth.Abstractions;
using NetModular.Lib.Auth.Web;
using NetModular.Lib.Config.Abstractions;
using NetModular.Lib.Module.Abstractions;
using NetModular.Lib.Utils.Core.Attributes;
using NetModular.Lib.Utils.Mvc.Helpers;
using NetModular.Module.Admin.Application.AuditInfoService;
using NetModular.Module.Admin.Domain.AuditInfo;

namespace NetModular.Module.Admin.Web.Core
{
    /// <summary>
    /// 审计日志处理
    /// </summary>
    [Singleton]
    public class AuditingHandler : IAuditingHandler
    {
        private readonly MvcHelper _mvcHelper;
        private readonly ILoginInfo _loginInfo;
        private readonly IAuditInfoService _auditInfoService;
        private readonly IModuleCollection _moduleCollection;
        private readonly ILogger _logger;
        private readonly IConfigProvider _configProvider;

        public AuditingHandler(MvcHelper mvcHelper, ILoginInfo loginInfo, IAuditInfoService auditInfoService, IModuleCollection moduleCollection, ILogger<AuditingHandler> logger, IConfigProvider configProvider)
        {
            _mvcHelper = mvcHelper;
            _loginInfo = loginInfo;
            _auditInfoService = auditInfoService;
            _moduleCollection = moduleCollection;
            _logger = logger;
            _configProvider = configProvider;
        }

        public async Task Hand(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            var config = _configProvider.Get<AuthConfig>();
            if (!config.Auditing)
            {
                await next();
                return;
            }

            var auditInfo = CreateAuditInfo(context);

            var sw = new Stopwatch();
            sw.Start();

            var resultContext = await next();

            sw.Stop();

后面还有 75 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。