コード例 #1
0
        public override IMemberAccountData CreateMember(MemberAuthInfo authInfo, out MemberCreationStatus status)
        {
            String logMethodName = ".CreateMember(MemberAuthInfo authInfo, out MemberCreationStatus status) - ";

            _log.Debug(logMethodName + "Begin Method");
            MemberAccountData accountData = (MemberAccountData)base.CreateMember(authInfo, out status);

            SetAccountDataFromAD(ref accountData);
            RecreateIndividualIdCookie(accountData.MemberId.ToString());

            _log.Debug(logMethodName + "End Method");
            return(accountData);
        }
コード例 #2
0
        public override IMemberAccountData CreateMember(MemberAuthInfo authInfo, IMemberProfileData profile, out MemberCreationStatus status)
        {
            String logMethodName = ".CreateMember(MemberAuthInfo authInfo, IMemberProfileData profile, out MemberCreationStatus status) - ";

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

            MemberAccountData accountData = (MemberAccountData)base.CreateMember(authInfo, profile, out status);

            _log.Debug("Create Member Status: " + status.ToString());
            //PROBLEM?:  Here we still try to set account data even if there was a problem successfully creating the member.
            SetAccountDataFromAD(ref accountData);
            RecreateIndividualIdCookie(accountData.MemberId.ToString());

            _log.Debug(logMethodName + "End Method");
            return(accountData);
        }
コード例 #3
0
        public virtual IMemberAccountData CreateMember(MemberAuthInfo authInfo, out MemberCreationStatus status)
        {
            String logMethodName = ".CreateMember(MemberAuthInfo authInfo, out MemberCreationStatus status) - ";

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


            IMemberAccountData returnData;

            returnData = CreateMember(
                authInfo,
                new MemberProfileData()
            {
                EmailAddress = authInfo.Email
            },
                out status);

            _log.Debug(logMethodName + " - End Method");
            return(returnData);
        }
コード例 #4
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);
        }
コード例 #5
0
        public ASAMemberModel RegisterMember(ASAMemberModel memberIn, bool logon = false)
        {
            const string logMethodName = ".RegisterMember(ASAMemberModel memberIn) - ";

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

            bool validModel = ASAMemberValidation.ValidateASAMember(memberIn);

            if (validModel)
            {
                //If no organization has been supplied check to see if a school has been supplied; this is for backwards compatibility,
                //if no organization or school, allocate one and set to No School Selected
                if (memberIn.Organizations == null || memberIn.Organizations.Count == 0)
                {
                    if (memberIn.Schools == null || memberIn.Schools.Count == 0)
                    {
                        MemberOrganizationModel mom = new MemberOrganizationModel()
                        {
                            OECode = "000000", BranchCode = "00"
                        };
                        memberIn.Organizations = new List <MemberOrganizationModel>()
                        {
                            mom
                        };
                        Log.Info(logMethodName + String.Format("Organization manually added for member: {0}. Set to No School Selected", memberIn.Emails[0].EmailAddress));
                    }
                    else
                    {
                        MemberOrganizationModel mom = new MemberOrganizationModel()
                        {
                            OECode = memberIn.Schools[0].OECode, BranchCode = memberIn.Schools[0].BranchCode, ExpectedGraduationYear = memberIn.ExpectedGraduationYear
                        };
                        memberIn.Organizations = new List <MemberOrganizationModel>()
                        {
                            mom
                        };
                        Log.Info(logMethodName + String.Format("Organization copied from school model for member: {0}.", memberIn.Emails[0].EmailAddress));
                    }
                }

                //only 2 items should be entered per registration and they should not be the same
                if (memberIn.Organizations.Count == 2)
                {
                    //will count the unique organization ids, should be 2, if 1 then they are the same, remove one
                    if (1 == memberIn.Organizations.GroupBy(o => o.OrganizationId).Count())
                    {
                        memberIn.Organizations.RemoveAt(1);
                        Log.Info(logMethodName + String.Format("Duplicate Organization removed for member: {0} and continuing to process", memberIn.Emails[0].EmailAddress));
                    }
                }

                if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Session != null)
                {
                    Log.Debug(logMethodName + "ClearSession being called at the beginning of Regsitration process");
                    Utility.BaseSession.ClearSession();
                }

                MemberCreationStatus createStatus;

                var member = new ASAMemberModel();

                if (_asaMemberAdapter.GetMemberByEmail(memberIn.Emails[0].EmailAddress) != null)
                {
                    var error = new ErrorModel("Error. It looks like you already have a SALT account. Visit saltmoney.org to login or to recover your password.", "WEB ASAMember Service");
                    error.Code = "DuplicateUserName";
                    member.ErrorList.Add(error);
                    Log.Debug(logMethodName + "End Method");
                    return(member);
                }

                var authInfo = new MemberAuthInfo
                {
                    Username = memberIn.Emails[0].EmailAddress,
                    Email    = memberIn.Emails[0].EmailAddress,
                    Password = memberIn.Password,
                };

                var profile = new MemberProfileData
                {
                    ContactFrequency = memberIn.ContactFrequency,
                    FirstName        = memberIn.FirstName,
                    LastName         = memberIn.LastName,
                    EmailAddress     = memberIn.Emails[0].EmailAddress,
                    Source           = memberIn.Source,
                    InvitationToken  = memberIn.InvitationToken,
                    YearOfBirth      = memberIn.YearOfBirth,
                };

                if (memberIn.Organizations.Any())
                {
                    profile.Organizations = new MemberOrganizationList <MemberOrganizationData>();
                    foreach (MemberOrganizationModel organization in memberIn.Organizations)
                    {
                        MemberOrganizationData item = new MemberOrganizationData();
                        item.OrganizationId         = organization.OrganizationId;
                        item.OECode                 = organization.OECode;
                        item.BranchCode             = organization.BranchCode;
                        item.ExpectedGraduationYear = organization.ExpectedGraduationYear;
                        item.ReportingId            = organization.ReportingId;
                        item.IsOrganizationDeleted  = organization.IsOrganizationDeleted;
                        profile.Organizations.Add(item);
                    }
                }

                var newMember = IntegrationLoader.LoadDependency <ISiteMembership>("siteMembership").CreateMember(authInfo, profile, out createStatus);

                if (createStatus != MemberCreationStatus.Success)
                {
                    var error = new ErrorModel("Error. Unable to complete your registration. Please check your information and try again.", "ASAMember Service");
                    error.Code = "GenericError";
                    member.ErrorList.Add(error);
                    Log.Debug(logMethodName + "End Method");
                    return(member);
                }

                if (logon)
                {
                    memberIn = _asaMemberAdapter.Logon(logon, memberIn.Emails[0].EmailAddress);
                    _asaMemberAdapter.SetMemberIdCookie(memberIn.MembershipId);
                }
            }

            return(memberIn);
        }
コード例 #6
0
 public IMemberAccountData CreateMember(MemberAuthInfo authInfo, IMemberProfileData profile, out MemberCreationStatus status)
 {
     status = MemberCreationStatusResponse;
     return(CreateMemberResponse);
 }
コード例 #7
0
 //Member Security
 public IMemberAccountData CreateMember(MemberAuthInfo authInfo, out MemberCreationStatus status)
 {
     throw new NotImplementedException();
 }