public void SetUserDataUsingClaimsPrincipalFactorySetsUserDataFromFactory() { var userName = $"John Smith"; var userEmail = $"*****@*****.**"; var userIdentity = Guid.NewGuid().ToString(); var principal = new ClaimsPrincipal( new ClaimsIdentity( new Claim[] { new Claim(ClaimTypes.Name, userName), new Claim(ClaimTypes.Email, userEmail), new Claim(ClaimTypes.NameIdentifier, userIdentity) }, "Mocked")); lock (Padlock) { var auditEvent = new AuditEvent(); auditEvent.UserId.Should().BeNull(); auditEvent.UserName.Should().BeNull(); auditEvent.UserEmail.Should().BeNull(); auditEvent.UserIdentity.Should().BeNull(); AuditBehaviours.SetUserDataUsingClaimsPrincipalFactory(auditEvent, () => principal); auditEvent.UserId.Should().Be(userEmail); auditEvent.UserName.Should().Be(userName); auditEvent.UserEmail.Should().Be(userEmail); auditEvent.UserIdentity.Should().Be(userIdentity); } }
public void SetUserDataUsingToFlowedUserSetsUserData() { var userId = Guid.NewGuid().ToString(); var userName = $"JohnSmith_{userId}"; var userEmail = $"{userName}@email.com"; var userIdentity = $"Fake|{userName}"; var auditEvent = new AuditEvent(); auditEvent.UserId.Should().BeNull(); auditEvent.UserName.Should().BeNull(); auditEvent.UserEmail.Should().BeNull(); auditEvent.UserIdentity.Should().BeNull(); lock (Padlock) { AuditContext.AddOrUpdatePersistentData("UserId", userId); AuditContext.AddOrUpdatePersistentData("UserName", userName); AuditContext.AddOrUpdatePersistentData("UserEmail", userEmail); AuditContext.AddOrUpdatePersistentData("UserIdentity", userIdentity); AuditBehaviours.SetUserDataToFlowedUser(auditEvent); auditEvent.UserId.Should().Be(userId); auditEvent.UserName.Should().Be(userName); auditEvent.UserEmail.Should().Be(userEmail); } }
public void SetApplicationNameToLoggingApplicationNameSetsApplicationName() { var auditEvent = new AuditEvent(); auditEvent.ApplicationName.Should().BeNull(); AuditBehaviours.SetApplicationNameToLoggingApplicationName(auditEvent); auditEvent.ApplicationName.Should().Be(AuditContext.ApplicationName); }
public void SetMachineNameToEnvironmentMachineNameSetsMachineName() { var auditEvent = new AuditEvent(); auditEvent.MachineName.Should().BeNull(); AuditBehaviours.SetMachineNameToEnvironmentMachineName(auditEvent); auditEvent.MachineName.Should().Be(Environment.MachineName); }
/// <summary> /// Configures the Auditing framework to use the specified <see cref="ClaimsPrincipal"/> factory /// as the current Actor source each time auditing occurs. /// </summary> /// <param name="config">The <see cref="IAuditConfiguration" /> instance to configure.</param> /// <param name="factory">The factory.</param> /// <returns>The configured <see cref="IAuditConfiguration"/> instance.</returns> public static IAuditConfiguration UsingClaimsPrincipalFactory(this IAuditConfiguration config, Func <ClaimsPrincipal> factory) { Contract.Requires(config != null); Contract.Requires(factory != null); Guard.AgainstNullArgument(nameof(config), config); Guard.AgainstNullArgument(nameof(factory), factory); Contract.EndContractBlock(); config.AddBehaviour(auditEvent => AuditBehaviours.SetUserDataUsingClaimsPrincipalFactory(auditEvent, factory)); return(config); }
public void SetCorrelationKeyToFlowedCorrelationKeyOrDefaultSetsCorrelationKeyWhenNoneAvailable() { lock (Padlock) { AuditContext.SetCorrelationKey(null); var auditEvent = new AuditEvent(); auditEvent.CorrelationKey.Should().BeNull(); AuditBehaviours.SetCorrelationKeyToFlowedCorrelationKeyOrDefault(auditEvent); auditEvent.CorrelationKey.Should().NotBeNullOrWhiteSpace(); } }
public void SetCorrelationKeyToFlowedCorrelationKeyOrDefaultSetsCorrelationKeyWhenAvailable() { lock (Padlock) { var expected = Guid.NewGuid().ToString(); AuditContext.SetCorrelationKey(expected); var auditEvent = new AuditEvent(); auditEvent.CorrelationKey.Should().BeNull(); AuditBehaviours.SetCorrelationKeyToFlowedCorrelationKeyOrDefault(auditEvent); auditEvent.CorrelationKey.Should().Be(expected); } }