//public AuthenticationResultDataContract SignIn(string userName, string password)
        //{
        //    AuthenticationResultDataContract authenticationResult = new AuthenticationResultDataContract();

        //    // Validate user membership
        //    //
        //    Membership membership = MembershipBiz.SingleOrDefault(m => m.Person.PrimaryEmail == userName);

        //    if (membership == null)
        //    {
        //        authenticationResult.Result = AuthenticationResult.UserIsNotExist;
        //    }
        //    else if (membership.IsLockedOut)
        //    {
        //        authenticationResult.Result = AuthenticationResult.UserIsBlocked;
        //    }

        //    // Start authenticate user
        //    //
        //    byte[] passwordHash = SecurityHelper.ComputeSha256Hash(password);
        //    if (membership.Password.SequenceEqual(passwordHash))
        //    {
        //        authenticationResult.Authenticated = true;
        //        authenticationResult.Result = membership.IsApproved ? AuthenticationResult.Successed : AuthenticationResult.SuccessedButUserIsNotActivated;

        //        Person person = PersonBiz.SingleOrDefault(p => p.Id == membership.Id);

        //        IdentificationInformationDataContract userIdentity = new IdentificationInformationDataContract();
        //        authenticationResult.UserIdentity = userIdentity;

        //        userIdentity.PrimaryEmail = person.PrimaryEmail;

        //        if (person is NaturalPerson)
        //        {
        //            NaturalPerson naturalPerson = (NaturalPerson)person;
        //            userIdentity.FirstName = naturalPerson.FirstName;
        //            userIdentity.LastName = naturalPerson.LastName;
        //            userIdentity.IsNaturalPerson = true;
        //        }
        //        else
        //        {
        //            LegalPerson legalPerson = (LegalPerson)person;
        //            userIdentity.FirstName = legalPerson.Name;
        //            userIdentity.LastName = string.Empty;
        //            userIdentity.IsNaturalPerson = false;
        //        }
        //    }
        //    else
        //    {
        //        authenticationResult.Result = AuthenticationResult.UserOrPasswordIsInvalid;
        //    }

        //    return authenticationResult;
        //}

        public AuthenticationResultDataContract SignIn(string userName, string password)
        {
            var authResult = new AuthenticationResultDataContract();
            var person     = PersonBiz.GetPersonByCredentials(userName, password);

            if (person == null)
            {
                return(authResult);
            }

            authResult.Authenticated     = true;
            authResult.UserAccountStatus = PersonBiz.GetAccountStatus(person);
            authResult.UserId            = person.Id;
            authResult.PrimaryEmail      = person.PrimaryEmail;

            // if person is a natural person
            var naturalPerson = person as NaturalPerson;

            authResult.IsNaturalPerson = naturalPerson != null;
            authResult.FirstName       = naturalPerson?.FirstName;
            authResult.LastName        = naturalPerson?.LastName;
            authResult.Name            = $"{naturalPerson?.LastName} {naturalPerson?.FirstName}";

            // if person is legal person
            var legalPerson = person as LegalPerson;

            authResult.Name = legalPerson?.Name;

            return(authResult);
        }
 public static AuthenticationResult GetAuthenticationResult(this AuthenticationResultDataContract dataContract)
 {
     return(new AuthenticationResult()
     {
         Authenticated = dataContract.Authenticated,
         UserIdentity = dataContract.UserIdentity.GetPerson()
     });
 }
예제 #3
0
        public static LogOnResult ToLogOnResult(this AuthenticationResultDataContract authenticationResultDataContract)
        {
            var accountStatus =
                (AcountStatus)
                Enum.Parse(typeof(AcountStatus), authenticationResultDataContract.UserAccountStatus.ToString());

            var userInfo = new UserInfo
            {
                PrimaryEmail = authenticationResultDataContract.PrimaryEmail,
                Name         = authenticationResultDataContract.Name
            };

            return(new LogOnResult
            {
                AccountStatus = accountStatus,
                UserInfo = userInfo,
                SignedIn = authenticationResultDataContract.Authenticated
            });
        }
예제 #4
0
        public static AuthenticationResult GetAuthenticationResult(this AuthenticationResultDataContract dc)
        {
            var result = new AuthenticationResult();

            result.Authenticated     = dc.Authenticated;
            result.IsNaturalPerson   = dc.IsNaturalPerson;
            result.UserAccountStatus = (Common.Enum.UserAccountStatus)dc.UserAccountStatus;
            result.Person            = dc.IsNaturalPerson ?
                                       (Person) new NaturalPerson()
            {
                PrimaryEmail = dc.PrimaryEmail,
                FirstName    = dc.FirstName,
                LastName     = dc.LastName,
            } :
            (Person) new LegalPerson()
            {
                PrimaryEmail = dc.PrimaryEmail,
                Name         = dc.Name
            };
            return(result);
        }