예제 #1
0
    public IdentitySecurityLog(IGuidGenerator guidGenerator, SecurityLogInfo securityLogInfo)
        : base(guidGenerator.Create())
    {
        TenantId   = securityLogInfo.TenantId;
        TenantName = securityLogInfo.TenantName.Truncate(IdentitySecurityLogConsts.MaxTenantNameLength);

        ApplicationName = securityLogInfo.ApplicationName.Truncate(IdentitySecurityLogConsts.MaxApplicationNameLength);
        Identity        = securityLogInfo.Identity.Truncate(IdentitySecurityLogConsts.MaxIdentityLength);
        Action          = securityLogInfo.Action.Truncate(IdentitySecurityLogConsts.MaxActionLength);

        UserId   = securityLogInfo.UserId;
        UserName = securityLogInfo.UserName.Truncate(IdentitySecurityLogConsts.MaxUserNameLength);

        CreationTime = securityLogInfo.CreationTime;

        ClientIpAddress = securityLogInfo.ClientIpAddress.Truncate(IdentitySecurityLogConsts.MaxClientIpAddressLength);
        ClientId        = securityLogInfo.ClientId.Truncate(IdentitySecurityLogConsts.MaxClientIdLength);
        CorrelationId   = securityLogInfo.CorrelationId.Truncate(IdentitySecurityLogConsts.MaxCorrelationIdLength);
        BrowserInfo     = securityLogInfo.BrowserInfo.Truncate(IdentitySecurityLogConsts.MaxBrowserInfoLength);

        foreach (var property in securityLogInfo.ExtraProperties)
        {
            ExtraProperties.Add(property.Key, property.Value);
        }
    }