Ejemplo n.º 1
0
        /// <summary>
        /// Object initilizes using the data in the provided data object. If the data matches a user held by providers then
        /// restore, update, save etc will work properly.
        /// </summary>
        /// <param name="accountData">Account data object</param>
        /// <param name="profileData">Profile data object</param>
        public SiteMember(IMemberAccountData accountData, IMemberProfileData profileData)
        {
            String logMethodName = ".ctor(IMemberAccountData accountData, IMemberProfileData profileData) - ";

            _log.Debug(logMethodName + "Begin Method");

            Init();

            try
            {
                _log.Debug(logMethodName + "Loading Member Account");
                _memberAccount = new MemberAccount(accountData);
            }
            catch (Exception ex)
            {
                _log.Error(logMethodName + "Unable to create member account instance from data object provided", ex);
                throw new WtfException("Unable to create member account instance from data object provided", ex);
            }

            //TODO - JHL: Making Profile Member Id = iKey = profileData.Id, but should it be AD Key (_memberAccount.MemberId)

            try
            {
                _log.Debug(logMethodName + "Loading Member Profile");
                _memberProfile = new MemberProfile(profileData.Id, profileData, false);
            }
            catch (Exception ex)
            {
                _log.Error(logMethodName + "Unable to create member profile instance from data object provided", ex);
                throw new WtfException("Unable to create member profile instance from data object provided", ex);
            }

            _log.Debug(logMethodName + "End Method");
        }
Ejemplo n.º 2
0
        public virtual IMemberAccountData GetMember(string username)
        {
            String logMethodName = ".GetMember(string username) - ";

            _log.Debug(logMethodName + " - Begin Method");


            MembershipUser     user       = null;
            IMemberAccountData returnData = null;

            try
            {
                user = GetUser(username);
            }
            catch (Exception ex)
            {
                throw new SecurityAdapterException("An error has occured in the .NET Membership provider while calling Membership.GetUser(username)", ex);
            }

            if (user != null)
            {
                returnData = user.ToMemberAccountData();
            }

            _log.Debug(logMethodName + " - End Method");

            return(returnData);
        }
Ejemplo n.º 3
0
        public SiteMember GetMember(object membershipId)
        {
            const string logMethodName = ".GetMember(object membershipId)";

            _log.Debug(logMethodName + " - Begin Method");
            IMemberAccountData accountData = null;
            IMemberProfileData profileData = null;

            try
            {
                _log.Debug(logMethodName + " - Calling ISecurityAdapter.GetMember(membershipId)");

                accountData = _adapter.GetMember(membershipId);
            }
            catch (Exception ex)
            {
                _log.Error(logMethodName + " - Error retrieving member accound data from Security Adapter " + _adapter.GetType().FullName);

                throw new WtfException(logMethodName + " - Error retrieving member accound data from Security Adapter" + _adapter.GetType().FullName, ex);
            }

            try
            {
                _log.Debug(logMethodName + " - Calling IContextDataAdapter.GetMemberProfile(membershipId)");

                profileData = _provider.GetMemberProfile(accountData.MemberId);
            }
            catch (Exception ex)
            {
                _log.Error(logMethodName + " - Error retrieving member accound data from Data Provider" + _provider.GetType().FullName, ex);

                throw new WtfException(logMethodName + " - Error retrieving member accound data from Data Provider " + _provider.GetType().FullName, ex);
            }

            SiteMember siteMember = null;

            try
            {
                siteMember = new SiteMember(accountData, profileData);
            }
            catch (Exception ex)
            {
                _log.Error(logMethodName + " - Unable to create SiteMember(MemberAccountData, MemberProfileData) instance", ex);

                throw new WtfException(logMethodName + " - Unable to create SiteMember(MemberAccountData, MemberProfileData) instance", ex);
            }

            _log.Debug(logMethodName + " - End Method");
            return(siteMember);
        }
Ejemplo n.º 4
0
        //Changed to public so that we can use it in Test implmementation - mt 10/10/2012
        public MemberAccount(IMemberAccountData accountData)
        {
            String logMethodName = ".ctor(IMemberAccountData accountData) - ";

            _log.Debug(logMethodName + "Begin Method");

            Init();

            _membershipId = accountData.MemberId;

            _accountData       = (MemberAccountData)accountData;
            _accountDataLoaded = true;
            _isAnonymous       = false;

            _log.Debug(logMethodName + "End Method");
        }
Ejemplo n.º 5
0
        public SiteMember CreateMember(MemberAuthInfo authInfo, MemberProfileData profile, out MemberCreationStatus status, IList <IContextActionValidationRequest <IContextActionValidator> > validationRequests = null)
        {
            const string logMethodName = ".CreateMember(MemberAuthInfo, MemberProfileData, out MemberCreationStatus, IList<IContextActionValidationRequest<IContextActionValidator>>)";
            const string logEndMessage = logMethodName + " - End Method";

            _log.Info(logMethodName + " - Creating new SiteMember");
            _log.Debug(logMethodName + " - Begin Method");
            SiteMember newMember = null;

            status = MemberCreationStatus.Error;

            IMemberAccountData accountData = null;
            int timesToTry = 2;

            //SWD-7461 - adding retry logic.
            for (int i = 0; i < timesToTry; i++)
            {
                try
                {
                    _log.Debug(logMethodName + " - Calling ISecurityAdapter.CreateMember(MemberAuthInfo authInfo, MemberProfileData data, out MemberCreationStatus status)");
                    status      = MemberCreationStatus.Error;
                    accountData = _adapter.CreateMember(authInfo, profile, out status);
                    break;
                }
                catch (Exception ex)
                {
                    _log.Error(logMethodName + " - Error Creating new member account using the ISecurityAdapter.CreateMember will retry again", ex);
                    System.Threading.Thread.Sleep(1000);
                    accountData = null;
                }
            }

            if (status == MemberCreationStatus.Success)
            {
                _log.Info(logMethodName + " - MemberAccount created successfully by ISecurityAdapter.CreateMember - Creating MemberProfile");

                var memberProfile = new MemberProfileData(profile)
                {
                    MemberId       = accountData.MemberId,
                    LastModified   = DateTime.Now,
                    LastModifiedBy = accountData.MemberId
                };
                if (memberProfile.ProviderKeys == null)
                {
                    memberProfile.ProviderKeys = new Dictionary <string, object>();
                }
                memberProfile.ProviderKeys.Add("ActiveDirectoryKey", accountData.MemberId); // We prob dont need this, code using the ADKey lower in the framework will be ignored

                try
                {
                    IMemberProfileData data;
                    _log.Debug(logMethodName + " - Calling IContextDataProvider.CreateMemberProfile(MemberProfileData data, ProviderKeys keys)");
                    //TODO verify and remove provider key integration at this layer. - May need pin based lookup for pre-registered accounts to call update.
                    data          = _provider.CreateMemberProfile(memberProfile, memberProfile.ProviderKeys);
                    memberProfile = new MemberProfileData(data);
                }
                catch (Exception ex)
                {
                    _log.Error(logMethodName + " - Error Creating new member profile using the IContextDataProvider - Rolling back new account", ex);
                    _log.Info(logMethodName + " - Rolling back - STEP 1. DELETE MEMBER ACCOUNT");
                    _log.Debug(logMethodName + " - Calling ISecurityAdapter.DeleteMember(Object memberId)");

                    _adapter.DeleteMember(accountData.Username);
                    status = MemberCreationStatus.AdapterError;

                    _log.Debug(logEndMessage);
                    accountData = null;
                }

                try
                {
                    newMember = new SiteMember(accountData, memberProfile);
                }
                catch (Exception ex)
                {
                    _log.Error(logMethodName + " - Error Creating new sitemember instance", ex);
                    _log.Debug(logEndMessage);
                    newMember = null;
                }
            }
            else
            {
                // SWD-5616
                _log.Warn(logMethodName + " - Member Creation Unsuccessful.  Status: " + status);
            }

            _log.Debug(logEndMessage);
            return(newMember);
        }
Ejemplo n.º 6
0
        public virtual IMemberAccountData CreateMember(MemberAuthInfo authInfo, IMemberProfileData profile, out MemberCreationStatus status)
        {
            String logMethodName = ".CreateMember(MemberAuthInfo authInfo, IMemberProfileData profile, out MemberCreationStatus status) - ";

            _log.Debug(logMethodName + " - Begin Method");

            status = MemberCreationStatus.Error;

            IMemberAccountData data = null;

            MembershipCreateStatus createStatus = MembershipCreateStatus.Success;

            try
            {
                // Membership.CreateUser Method - throws exception MembershipCreateUserException if user is
                // not created:
                //     http://msdn.microsoft.com/en-us/library/t8yy6w3h.aspx
                data = new MembershipUserWrapper(Membership.CreateUser(
                                                     authInfo.Username,
                                                     authInfo.Password,
                                                     authInfo.Email));
            }

            catch (MembershipCreateUserException e)
            {
                createStatus = e.StatusCode;
                _log.Debug(logMethodName + " - User " + authInfo.Username + " was not created - status=" + createStatus);
            }

            catch (Exception ex)
            {
                SaltADMembershipProvider.ADConnector.LogActiveDirectoryMembershipProviderProperties();

                throw new SecurityAdapterException("An error has occured in the .NET Membership provider while calling Membership.CreateUser(username, password, username) for username " + authInfo.Username, ex);
            }

            switch (createStatus)
            {
            case MembershipCreateStatus.Success:
                status = MemberCreationStatus.Success;
                //FormsAuthentication.SetAuthCookie(authInfo.Username, true);
                //FormsAuthentication.Authenticate(authInfo.Username, authInfo.Password);
                break;

            case MembershipCreateStatus.DuplicateEmail:
                status = MemberCreationStatus.DuplicateEmail;
                break;

            case MembershipCreateStatus.DuplicateProviderUserKey:
                status = MemberCreationStatus.DuplicateUserName;
                break;

            case MembershipCreateStatus.DuplicateUserName:
                status = MemberCreationStatus.DuplicateUserName;
                break;

            case MembershipCreateStatus.InvalidAnswer:
                status = MemberCreationStatus.InvalidAnswer;
                break;

            case MembershipCreateStatus.InvalidEmail:
                status = MemberCreationStatus.InvalidEmail;
                break;

            case MembershipCreateStatus.InvalidPassword:
                status = MemberCreationStatus.InvalidPassword;
                break;

            case MembershipCreateStatus.InvalidProviderUserKey:
                status = MemberCreationStatus.InvalidUserName;
                break;

            case MembershipCreateStatus.InvalidQuestion:
                status = MemberCreationStatus.InvalidQuestion;
                break;

            case MembershipCreateStatus.InvalidUserName:
                status = MemberCreationStatus.InvalidUserName;
                break;

            case MembershipCreateStatus.ProviderError:
                status = MemberCreationStatus.AdapterError;
                break;

            case MembershipCreateStatus.UserRejected:
                status = MemberCreationStatus.UserRejected;
                break;

            default:
                status = MemberCreationStatus.Error;

                break;
            }

            _log.Debug(logMethodName + " - End Method");

            return(data);
        }