예제 #1
0
        protected Member CreateMember(string emailAddress, string firstName, string lastName, Guid verticalId, bool isAffiliated, string externalId)
        {
            var member = new Member
            {
                EmailAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Address = emailAddress
                    }
                },
                FirstName = firstName,
                LastName  = lastName,
                Address   = new Address {
                    Location = _locationQuery.ResolveLocation(_locationQuery.GetCountry("Australia"), "Sydney 2000 NSW")
                },
                IsActivated = true,
            };

            var externalCredentals = new ExternalCredentials {
                ProviderId = verticalId, ExternalId = externalId
            };

            _memberAccountsCommand.CreateMember(member, externalCredentals, isAffiliated ? verticalId : (Guid?)null);

            return(member);
        }
예제 #2
0
 bool ISecurityRepository.DoCredentialsExist(ExternalCredentials credentials)
 {
     using (var dc = CreateContext().AsReadOnly())
     {
         return(DoesExternalUserExist(dc, credentials.ProviderId, credentials.ExternalId));
     }
 }
예제 #3
0
        private Member CreateMember(bool enabled, bool activated, Guid verticalId)
        {
            var member = new Member
            {
                EmailAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Address = EmailAddress
                    }
                },
                FirstName = FirstName,
                LastName  = LastName,
                Address   = new Address {
                    Location = _locationQuery.ResolveLocation(_locationQuery.GetCountry("Australia"), "Sydney 2000 NSW")
                },
                IsActivated = true,
            };

            var externalCredentals = new ExternalCredentials {
                ProviderId = verticalId, ExternalId = ExternalId
            };

            _memberAccountsCommand.CreateMember(member, externalCredentals, verticalId);

            member.IsEnabled   = enabled;
            member.IsActivated = activated;
            _memberAccountsCommand.UpdateMember(member);

            return(member);
        }
예제 #4
0
파일: Mappings.cs 프로젝트: formist/LinkMe
        public static ExternalUserEntity Map(this ExternalCredentials credentials, Guid userId)
        {
            var entity = new ExternalUserEntity {
                id = userId
            };

            credentials.MapTo(entity);
            return(entity);
        }
        private static AuthenticationResult AuthenticateUser(IRegisteredUser user, ExternalCredentials storedCredentials, ExternalCredentials credentials)
        {
            const string method = "AuthenticateUser";

            // If the password hash has already been determined then use that.

            if (storedCredentials.ProviderId == credentials.ProviderId && storedCredentials.ExternalId == credentials.ExternalId)
            {
                return(CreateResult(user, GetAuthenticationStatus(user, storedCredentials)));
            }

            EventSource.Raise(Event.Trace, method, string.Format("External authentication failed for user {0} ({1}).", storedCredentials.ExternalId, user.Id));
            return(CreateFailedResult(user));
        }
예제 #6
0
 void ISecurityRepository.UpdateCredentials(Guid userId, ExternalCredentials credentials)
 {
     using (var dc = CreateContext())
     {
         var entity = GetExternalUserEntity(dc, userId, credentials.ProviderId);
         if (entity != null)
         {
             credentials.MapTo(entity);
         }
         else
         {
             dc.ExternalUserEntities.InsertOnSubmit(credentials.Map(userId));
         }
         dc.SubmitChanges();
     }
 }
예제 #7
0
        void IMemberAccountsCommand.CreateMember(Member member, ExternalCredentials credentials, Guid?affiliateId)
        {
            // Set some defaults.

            member.IsEnabled   = true;
            member.AffiliateId = affiliateId;
            PrepareEmailAddresses(member);

            // Save.

            CreateMember(member, affiliateId);
            _externalCredentialsCommand.CreateCredentials(member.Id, credentials);

            // Fire events.

            var handlers = MemberCreated;

            if (handlers != null)
            {
                handlers(this, new MemberCreatedEventArgs(member.Id));
            }
        }
        public void TestAuthenticateUserFlags()
        {
            var member     = _memberAccountsCommand.CreateTestMember(EmailAddress, Password, FirstName, LastName);
            var providerId = Guid.NewGuid();

            _externalCredentialsCommand.CreateCredentials(member.Id, new ExternalCredentials {
                ProviderId = providerId, ExternalId = ExternalId
            });

            // Enabled and Activated.

            var credentials = new ExternalCredentials {
                ProviderId = providerId, ExternalId = ExternalId
            };

            Assert.AreEqual(AuthenticationStatus.Authenticated, _externalAuthenticationCommand.AuthenticateUser(credentials).Status);

            // Disabled and Activated.

            member.IsEnabled   = false;
            member.IsActivated = true;
            _memberAccountsCommand.UpdateMember(member);
            Assert.AreEqual(AuthenticationStatus.Disabled, _externalAuthenticationCommand.AuthenticateUser(credentials).Status);

            // Enabled and Deactivated.

            member.IsEnabled   = true;
            member.IsActivated = false;
            _memberAccountsCommand.UpdateMember(member);
            Assert.AreEqual(AuthenticationStatus.Deactivated, _externalAuthenticationCommand.AuthenticateUser(credentials).Status);

            // Disabled and Deactivated.

            member.IsEnabled   = false;
            member.IsActivated = false;
            _memberAccountsCommand.UpdateMember(member);
            Assert.AreEqual(AuthenticationStatus.Disabled, _externalAuthenticationCommand.AuthenticateUser(credentials).Status);
        }
예제 #9
0
        private void CreateMember(string emailAddress, string firstName, string lastName, string jobTitle, string jobCompany, Guid verticalId, bool isAffiliated, string externalId)
        {
            var member = new Member
            {
                EmailAddresses = new List <EmailAddress> {
                    new EmailAddress {
                        Address = emailAddress
                    }
                },
                FirstName = firstName,
                LastName  = lastName,
                Address   = new Address {
                    Location = _locationQuery.ResolveLocation(_locationQuery.GetCountry("Australia"), "Sydney 2000 NSW")
                },
                IsActivated = true,
            };

            var externalCredentals = new ExternalCredentials {
                ProviderId = verticalId, ExternalId = externalId
            };

            _memberAccountsCommand.CreateMember(member, externalCredentals, isAffiliated ? verticalId : (Guid?)null);

            // Add a resume.

            var candidate = _candidatesQuery.GetCandidate(member.Id);

            _candidateResumesCommand.AddTestResume(candidate);
            var resume = _resumesQuery.GetResume(candidate.ResumeId.Value);

            resume.Jobs = new List <Job> {
                new Job {
                    Title = jobTitle, Company = jobCompany
                }
            };
            _resumesCommand.UpdateResume(resume);
        }
        AuthenticationResult IExternalAuthenticationCommand.AuthenticateUser(ExternalCredentials credentials)
        {
            if (credentials == null)
            {
                throw new ArgumentNullException("credentials");
            }

            // Get the user.

            var user = GetUser(credentials.ProviderId, credentials.ExternalId);

            if (user == null)
            {
                return(CreateFailedResult(null));
            }

            // Get the stored credentials and authenticate.

            var storedCredentials = _externalCredentialsQuery.GetCredentials(user.Id, credentials.ProviderId);

            return(storedCredentials == null
                ? CreateFailedResult(user)
                : AuthenticateUser(user, storedCredentials, credentials));
        }
예제 #11
0
 void IExternalCredentialsCommand.UpdateCredentials(Guid userId, ExternalCredentials credentials, Guid updatedById)
 {
     _repository.UpdateCredentials(userId, credentials);
 }
        private static AuthenticationStatus GetAuthenticationStatus(IUserAccount account, ExternalCredentials credentials)
        {
            const string method = "AuthenticateUserFlags";

            AuthenticationStatus status;

            if (!account.IsEnabled)
            {
                status = AuthenticationStatus.Disabled;
            }
            else if (!account.IsActivated)
            {
                status = AuthenticationStatus.Deactivated;
            }
            else
            {
                status = AuthenticationStatus.Authenticated;
            }

            EventSource.Raise(Event.Trace, method, "User verification for externalId '" + credentials.ExternalId + "' = " + status);
            return(status);
        }
예제 #13
0
파일: Mappings.cs 프로젝트: formist/LinkMe
 public static void MapTo(this ExternalCredentials credentials, ExternalUserEntity entity)
 {
     entity.externalProviderId = credentials.ProviderId;
     entity.externalId         = credentials.ExternalId;
 }
예제 #14
0
 bool IExternalCredentialsQuery.DoCredentialsExist(ExternalCredentials credentials)
 {
     return(_repository.DoCredentialsExist(credentials));
 }
예제 #15
0
 protected void AssertCredentials(Guid providerId, string externalId, ExternalCredentials credentials)
 {
     Assert.AreEqual(providerId, credentials.ProviderId);
     Assert.AreEqual(externalId, credentials.ExternalId);
 }