//Add events to the Subject for tracking the authentication status results public void UserAuthenticated(UserPrincipal retrievedUser, string domain, string authProvider, string hostIpAddress, string clientId) { if (_usersRm.HasUser(retrievedUser.Sid.Value, domain, out Guid userId) && _subjectsRm.TryGetSubjectIdForUser(userId, authProvider, domain, out var subId)) { var subject = _repo.GetById <Subject>(subId, new CorrelatedRoot()); subject.Authenticated(hostIpAddress, clientId); _repo.Save(subject); } }
public void can_get_subject_ids() { var user1 = Guid.NewGuid(); var user2 = Guid.NewGuid(); var user3 = Guid.NewGuid(); var sub1 = AddNewSubject(user1, provider: authProvider2, domain: "other1"); var sub2 = AddNewSubject(user2, provider: authProvider2, domain: "other2"); var sub3 = AddNewSubject(user3); Guid testSub = Guid.Empty; AssertEx.IsOrBecomesTrue(() => _rm.TryGetSubjectIdForUser(user1, authProvider2, "other1", out testSub)); Assert.Equal(sub1, testSub); Assert.True(_rm.TryGetSubjectIdForUser(user2, authProvider2, "other2", out testSub)); Assert.Equal(sub2, testSub); Assert.True(_rm.TryGetSubjectIdForUser(user3, authProvider, authDomain, out testSub)); Assert.Equal(sub3, testSub); }