internal static IUserBasic CreateUser(IApplicationSettings applicationSettings, IApplication application
                                              , DummyDataManager dummyDataManager, WorkmateRoleProvider roleProvider
                                              , WorkmateMembershipProvider membershipProvider, string password, AccountStatus accountStatus)
        {
            DummyUser user = dummyDataManager.GetDummy();

            string       firstName    = user.Firstname;
            string       lastName     = user.Surname;
            TimeZoneInfo timeZoneInfo = TimeZoneUtility.GetGMTStandardTimeZone();

            IUserBasic userBasic = new UserBasic(user.Email, user.Email, 1)
            {
                AccountStatus = accountStatus,
                TimeZoneInfo  = timeZoneInfo
            };

            Guid            uniqueId;
            List <UserRole> userRoles = new List <UserRole>()
            {
                UserRole.SystemAdministrator, UserRole.Registered
            };
            UserCreateStatus userCreateStatus = membershipProvider.CreateUser(ref userBasic, password, userRoles, UserNameDisplayMode.FullName
                                                                              , firstName, lastName
                                                                              , Workmate.Components.Contracts.Membership.Gender.Male
                                                                              , out uniqueId, application.ApplicationId).Status;

            Assert.AreEqual(UserCreateStatus.Success, userCreateStatus);
            Assert.Greater(userBasic.UserId, 0);

            return(membershipProvider.GetUserBasic(userBasic.UserId, false));
        }
        internal static bool CreateDnnAccount(CustomerAccount cust, int portalId, ref UserCreateStatus status)
        {
            if (cust == null)
            {
                throw new ArgumentNullException("cust");
            }

            var ui = new UserInfo();

            if (string.IsNullOrWhiteSpace(cust.Username))
            {
                cust.Username = BuildUsername(cust);
            }

            ui.InitRequiredProperties(
                cust.Username,
                cust.FirstName,
                cust.LastName,
                cust.Email,
                cust.Password,
                portalId,
                true);

            UpdateUserInfo(ui, cust);
            status    = UserController.CreateUser(ref ui);
            cust.Bvin = ui.UserID.ToString();

            return(status == UserCreateStatus.Success);
        }
Пример #3
0
        /// <summary>
        /// 用户名验证
        /// </summary>
        /// <param name="userName">待创建的用户名</param>
        /// <param name="ignoreDisallowedUsername">是否忽略禁用的用户名称</param>
        /// <param name="userCreateStatus">用户帐号创建状态</param>
        public void RegisterValidate(string userName, bool ignoreDisallowedUsername, out UserCreateStatus userCreateStatus)
        {
            userCreateStatus = UserCreateStatus.UnknownFailure;
            UserSettings userSettings = userSettingsManager.Get();

            if (!ignoreDisallowedUsername)
            {
                if (userSettings.DisallowedUserNames.Split(new char[] { ',', ',' }).Any(n => n.Equals(userName, StringComparison.CurrentCultureIgnoreCase)))
                {
                    //用户输入字段为禁用字段
                    userCreateStatus = UserCreateStatus.DisallowedUsername;
                    return;
                }
            }
            //判断用户名是否唯一
            if (GetUserIdByUserName(userName) > 0)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return;
            }
            if (GetUser(GetUserIdByUserName(userName)) != null)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return;
            }
            else
            {
                userCreateStatus = UserCreateStatus.Created;
                return;
            }
        }
Пример #4
0
        /// <summary>
        /// Converte a situação vinda do serviço para a do sistema.
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        private static UserCreateStatus Convert(ServerHost.UserCreateStatus status)
        {
            UserCreateStatus result = UserCreateStatus.ProviderError;

            Enum.TryParse <UserCreateStatus>(status.ToString(), out result);
            return(result);
        }
Пример #5
0
        private UserCreateStatus CreateDNNUser(UserInfo user)
        {
            user.Membership.Password = UserController.GeneratePassword(12).ToString();
            user.PortalID            = PortalId;
            user.IsSuperUser         = false;

            UserCreateStatus createStatus = UserCreateStatus.AddUser;

            //Create the User
            createStatus = UserController.CreateUser(ref user);

            if (createStatus == UserCreateStatus.Success)
            {
                RoleController objRoles = new RoleController();

                List <int> rolesList = new List <int>();

                foreach (int roleID in rolesList)
                {
                    objRoles.AddUserRole(user.PortalID, user.UserID, roleID, Null.NullDate, Null.NullDate);
                }
            }

            return(createStatus);
        }
        //public UserInfo CreateNewUser(string username, string password, string email, string firstname, string lastname, string displayname, int portalId, string ipaddress)
        //{
        //    UserInfo oUser = new UserInfo();
        //    oUser.PortalID = portalId;
        //    oUser.IsSuperUser = false;
        //    oUser.FirstName = firstname;
        //    oUser.LastName = lastname;
        //    oUser.Email = email;
        //    oUser.Username = username;
        //    oUser.DisplayName = displayname;
        //    oUser.LastIPAddress = ipaddress;

        //    var pCt = new PortalController();
        //    var portalInf = pCt.GetPortal(portalId);

        //    //Fill MINIMUM Profile Items (KEY PIECE)
        //    oUser.Profile.PreferredLocale = portalInf.DefaultLanguage;
        //    oUser.Profile.FirstName = oUser.FirstName;
        //    oUser.Profile.LastName = oUser.LastName;

        //    // OPTIONAL - ADD custom user profile values
        //    //oUser.Profile.SetProfileProperty("PayrollID", payrollId.ToString());

        //    //Set Membership
        //    UserMembership oNewMembership = new UserMembership(oUser);
        //    oNewMembership.Password = password;

        //    //Bind membership to user
        //    oUser.Membership = oNewMembership;

        //    //Add the user, ensure it was successful
        //    if (UserController.CreateUser(ref oUser) == UserCreateStatus.Success)
        //    {
        //        var objRoles = new RoleController();
        //        RoleInfo objRole;

        //        // autoassign user to portal roles
        //        var arrRoles = objRoles.GetPortalRoles(oUser.PortalID);
        //        for (int i = 0; i < arrRoles.Count - 1; i++)
        //        {
        //            objRole = (RoleInfo)arrRoles[i];
        //            if (objRole.AutoAssignment)
        //            {
        //                objRoles.AddUserRole(oUser.PortalID, oUser.UserID, objRole.RoleID, DateTime.MinValue, DateTime.MaxValue);
        //            }
        //        }

        //        UserLoginStatus loginStatus = ValidateDNNUser(portalId, oUser.Username, password, ipaddress, ref oUser);
        //        return oUser;
        //    }
        //    else
        //    {
        //        return null;
        //    }
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="portalId"></param>
        /// <param name="portalSettings"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public UserCreateStatus CreateUser(int portalId, PortalSettings portalSettings, ref UserInfo user)
        {
            //Update DisplayName to conform to Format
            UpdateDisplayName(portalId, ref user);

            user.Membership.Approved = portalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration;
            UserCreateStatus CreateStatus = UserController.CreateUser(ref user);

            if (CreateStatus == UserCreateStatus.Success)
            {
                var objRoles = new RoleController();

                // autoassign user to portal roles
                var arrRoles = objRoles.GetRoles(user.PortalID);
                foreach (RoleInfo r in arrRoles)
                {
                    if (r.AutoAssignment)
                    {
                        objRoles.AddUserRole(user.PortalID, user.UserID, r.RoleID, DateTime.MinValue, DateTime.MaxValue);
                    }
                }
            }

            DataCache.ClearPortalCache(portalId, true);

            return(CreateStatus);
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Validate validates the User
        /// </summary>
        /// <history>
        ///     [cnurse]	08/10/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private bool Validate()
        {
            //Check User Editor
            bool _IsValid = userForm.IsValid;

            //Check Password is valid
            if (AddUser && ShowPassword)
            {
                UserCreateStatus createStatus = UserCreateStatus.AddUser;
                if (!chkRandom.Checked)
                {
                    //1. Check Password is Valid
                    if (createStatus == UserCreateStatus.AddUser && !UserController.ValidatePassword(txtPassword.Text))
                    {
                        createStatus = UserCreateStatus.InvalidPassword;
                    }
                    if (createStatus == UserCreateStatus.AddUser)
                    {
                        User.Membership.Password = txtPassword.Text;
                    }
                }
                else
                {
                    //Generate a random password for the user
                    User.Membership.Password = UserController.GeneratePassword();
                }

                //Check Question/Answer
                if (createStatus == UserCreateStatus.AddUser && MembershipProviderConfig.RequiresQuestionAndAnswer)
                {
                    if (string.IsNullOrEmpty(txtQuestion.Text))
                    {
                        //Invalid Question
                        createStatus = UserCreateStatus.InvalidQuestion;
                    }
                    else
                    {
                        User.Membership.PasswordQuestion = txtQuestion.Text;
                    }
                    if (createStatus == UserCreateStatus.AddUser)
                    {
                        if (string.IsNullOrEmpty(txtAnswer.Text))
                        {
                            //Invalid Question
                            createStatus = UserCreateStatus.InvalidAnswer;
                        }
                        else
                        {
                            User.Membership.PasswordAnswer = txtAnswer.Text;
                        }
                    }
                }
                if (createStatus != UserCreateStatus.AddUser)
                {
                    _IsValid = false;
                }
            }
            return(_IsValid);
        }
Пример #8
0
        protected void cmdNewUser_Click(object sender, EventArgs e)
        {
            if (lblUserNameConfirm.Text.ToLower() == txtUserName2Repeat.Text.ToLower())
            {
                _userName = txtUserName2Repeat.Text;
                UserInfo user = new UserInfo();
                user.Username            = _userName;
                user.FirstName           = "";
                user.LastName            = "";
                user.PortalID            = PortalId;
                user.Email               = _userName;
                user.DisplayName         = _userName;
                user.Membership.Password = UserController.GeneratePassword(10);
                user.IsSuperUser         = false;

                user.Profile.PreferredLocale = PortalSettings.DefaultLanguage;
                user.Profile.TimeZone        = PortalSettings.TimeZoneOffset;
                user.Profile.FirstName       = user.FirstName;
                user.Profile.LastName        = user.LastName;

                UserCreateStatus status = MembershipProvider.Instance().CreateUser(ref user);

                if (status == UserCreateStatus.Success)
                {
                    // Add User to Standard Roles
                    RoleController roleController = new RoleController();
                    RoleInfo       role           = new RoleInfo();

                    ArrayList roles = roleController.GetPortalRoles(PortalId);
                    for (int i = 0; i < roles.Count - 1; i++)
                    {
                        role = (RoleInfo)roles[i];
                        if (role.AutoAssignment == true)
                        {
                            roleController.AddUserRole(PortalId, user.UserID, role.RoleID, Null.NullDate, Null.NullDate);
                        }
                    }
                    // Log new user in and create a new customer +  add him to cart
                    UserController.UserLogin(PortalId, user, PortalSettings.PortalName, Request.UserHostAddress, false);
                    int customerId = Controller.NewCustomer(new CustomerInfo(user.UserID, PortalId, _userName));
                    Controller.UpdateCartCustomerId(this.MainControl.CartId, customerId);
                    Mail.SendMail(user, MessageType.UserRegistrationVerified, PortalSettings);
                    Response.Redirect(Request.QueryString["returnUrl"]);
                }
            }
            else
            {
                divMessages.Attributes.Add("class", "dnnFormMessage dnnFormWarning");
                string loginUrl = Globals.NavigateURL(TabId, "", "ctl=Login");
                lblIntro.Text          = String.Format(Localization.GetString("DifferentUserNames.Text", this.LocalResourceFile));
                txtUserName.Text       = "";
                pnlUser.Visible        = true;
                pnlCheckUser.Visible   = true;
                pnlPassword.Visible    = false;
                pnlConfirmUser.Visible = false;
            }
        }
Пример #9
0
        public CreateUserResult CreateUser(string username, string password, string fullname, string email, string passwordQuestion, string passwordAnswer, bool isApproved, string userKey, string identityProvider, bool ignoreCaptcha, Security.SecurityParameter[] parameters)
        {
            UserCreateStatus status = UserCreateStatus.ProviderError;
            var user = UserProvider.CreateUser(username, password, fullname, email, passwordQuestion, passwordAnswer, isApproved, userKey, identityProvider, ignoreCaptcha, out status, parameters);

            return(new CreateUserResult {
                User = user != null ? new User(user) : null,
                Status = status
            });
        }
Пример #10
0
        public ActionResult _CreateUser(ManageUsersCreateEditModel model)
        {
            User             user   = model.AsUser();
            UserCreateStatus status = UserCreateStatus.UnknownFailure;

            user.IsActivated = true;

            IUser       createdUser = iMembershipService.CreateUser(user, model.Password, out status);
            UserProfile profile     = UserProfile.New();

            profile.UserId = createdUser.UserId;
            new UserProfileService().Create(profile);
            StatusMessageData statusMessageData = null;

            switch (status)
            {
            case UserCreateStatus.DisallowedUsername:
                WebUtility.SetStatusCodeForError(Response);
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的帐号禁止使用,请输入其他名称");
                break;

            case UserCreateStatus.DuplicateEmailAddress:
                WebUtility.SetStatusCodeForError(Response);
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的电子邮箱地址已经被使用,请输入其他邮箱");
                break;

            case UserCreateStatus.DuplicateUsername:
                WebUtility.SetStatusCodeForError(Response);
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的帐号已经被使用,请输入其他名称");
                break;

            case UserCreateStatus.InvalidPassword:
                WebUtility.SetStatusCodeForError(Response);
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "您的密码长度少于本站要求的最小密码长度,请重新输入");
                break;

            case UserCreateStatus.UnknownFailure:
                WebUtility.SetStatusCodeForError(Response);
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,注册新用户的时候产生了一个未知错误");
                break;

            default:
                break;
            }
            ViewData["statusMessageData"] = statusMessageData;
            if (statusMessageData == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "创建成功!")));
            }
            else
            {
                return(View(model));
            }
        }
Пример #11
0
        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="user">待创建的用户</param>
        /// <param name="ignoreDisallowedUsername">是否忽略禁用的用户名称</param>
        /// <param name="userCreateStatus">用户帐号创建状态</param>
        /// <returns>创建成功返回IUser,创建失败返回null</returns>
        public IUser CreateUser(User user, bool ignoreDisallowedUsername, out UserCreateStatus userCreateStatus)
        {
            userCreateStatus = UserCreateStatus.UnknownFailure;

            IUserSettingsManager userSettingsManager = DIContainer.Resolve <IUserSettingsManager>();
            UserSettings         userSettings        = userSettingsManager.Get();

            if (!ignoreDisallowedUsername)
            {
                if (userSettings.DisallowedUserNames.Split(new char[] { ',', ',' }).Any(n => n.Equals(user.UserName, StringComparison.CurrentCultureIgnoreCase)))
                {
                    //用户输入字段为禁用字段
                    userCreateStatus = UserCreateStatus.DisallowedUsername;
                    return(null);
                }
            }

            //判断用户名是否唯一
            if (GetUserIdByUserName(user.UserName) > 0)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return(null);
            }

            if (GetUser(user.UserId) != null)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return(null);
            }

            //判断邮箱是否唯一
            if (GetUserIdByEmail(user.AccountEmail) > 0)
            {
                userCreateStatus = UserCreateStatus.DuplicateEmailAddress;
                return(null);
            }
            //如果不允许手机号重复的时候
            if (!userSettings.RequiresUniqueMobile)
            {
                if (GetUserIdByMobile(user.AccountMobile) > 0)
                {
                    userCreateStatus = UserCreateStatus.DuplicateMobile;
                    return(null);
                }
            }
            user.UserId = IdGenerator.Next();
            object userId_objcet = base.Insert(user);

            if (userId_objcet != null && (long)userId_objcet > 0)
            {
                userCreateStatus = UserCreateStatus.Created;
            }
            return(user);
        }
 public string UserCreateErrorCodeToString(UserCreateStatus result)
 {
     switch (result)
     {
         case UserCreateStatus.Succeed: return "注册成功";
         case UserCreateStatus.Faild: return "注册失败";
         case UserCreateStatus.AlreadyExist: return "该用户已经存在";
         case UserCreateStatus.ComfirmError: return "密码输入有误";
         default: return "未知错误";
     }
 }
Пример #13
0
        public IActionResult CreateUser(CreateUserModel model)
        {
            User user = model.AsUser();

            user.IsActivated = true;
            user.IpCreated   = Utility.GetIP();

            UserCreateStatus status      = UserCreateStatus.UnknownFailure;
            User             createdUser = membershipService.CreateUser(user, model.Password, out status);
            var userProfiles             = UserProfiles.New();

            userProfiles.Userid = createdUser.UserId;
            userProfilesService.Create(userProfiles);

            StatusMessageData statusMessageData = null;

            switch (status)
            {
            case UserCreateStatus.DisallowedUsername:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的帐号禁止使用,请输入其他名称");
                break;

            case UserCreateStatus.DuplicateEmailAddress:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的电子邮箱地址已经被使用,请输入其他邮箱");
                break;

            case UserCreateStatus.DuplicateUsername:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的帐号已经被使用,请输入其他名称");
                break;

            case UserCreateStatus.InvalidPassword:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "您的密码长度少于本站要求的最小密码长度,请重新输入");
                break;

            case UserCreateStatus.UnknownFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,注册新用户的时候产生了一个未知错误");
                break;

            default:
                break;
            }
            ViewData["statusMessageData"] = statusMessageData;
            if (statusMessageData == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "创建成功!")));
            }
            else
            {
                return(View(model));
            }
        }
Пример #14
0
 /// <summary>
 /// Retruns a String corresponding to the Registration Status of the User
 /// </summary>
 /// <param name="UserRegistrationStatus">The AUserCreateStatus</param>
 /// <returns>A String</returns>
 public static string GetUserCreateStatus(UserCreateStatus UserRegistrationStatus)
 {
     if (UserRegistrationStatus == UserCreateStatus.DuplicateEmail)
     {
         return(Localization.GetString("UserEmailExists"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidAnswer)
     {
         return(Localization.GetString("InvalidAnswer"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidEmail)
     {
         return(Localization.GetString("InvalidEmail"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidQuestion)
     {
         return(Localization.GetString("InvalidQuestion"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidUserName)
     {
         return(Localization.GetString("InvalidUserName"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.UserRejected)
     {
         return(Localization.GetString("UserRejected"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.PasswordMismatch)
     {
         return(Localization.GetString("PasswordMismatch"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.UsernameAlreadyExists || UserRegistrationStatus == UserCreateStatus.UserAlreadyRegistered || UserRegistrationStatus == UserCreateStatus.DuplicateUserName)
     {
         return(Localization.GetString("UserNameExists"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.DuplicateProviderUserKey || UserRegistrationStatus == UserCreateStatus.InvalidProviderUserKey || UserRegistrationStatus == UserCreateStatus.ProviderError)
     {
         return(Localization.GetString("RegError"));
     }
     else if (UserRegistrationStatus == UserCreateStatus.Success || UserRegistrationStatus == UserCreateStatus.UnexpectedError)
     {
         return(null);
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidPassword)
     {
         string replace = Localization.GetString("InvalidPassword");
         replace = replace.Replace("[PasswordLength]", MembershipProviderConfig.MinPasswordLength.ToString());
         return(replace.Replace("[NoneAlphabet]", MembershipProviderConfig.MinNonAlphanumericCharacters.ToString()));
     }
     return(null);
 }
Пример #15
0
            public static ActionResult CreateUser(RegisterDetails RegisterDetails)
            {
                ActionResult actionResult = new ActionResult();

                User.Membership.Approved = PortalSettings.Current.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration;
                CreateStatus             = UserController.CreateUser(ref User);
                DataCache.ClearPortalUserCountCache(PortalSettings.Current.PortalId);

                try
                {
                    if (CreateStatus == UserCreateStatus.Success)
                    {
                        ////Assocate alternate Login with User and proceed with Login
                        //if (!String.IsNullOrEmpty(AuthenticationType))
                        //{
                        //    AuthenticationController.AddUserAuthentication(User.UserID, AuthenticationType, UserToken);
                        //}

                        ActionResult result = CompleteUserCreation(CreateStatus, User, true, !(HttpContext.Current.Request.IsAuthenticated && PortalSecurity.IsInRole(PortalSettings.Current.AdministratorRoleName)) && !(HttpContext.Current.Request.IsAuthenticated && (User.UserID == (PortalController.Instance.GetCurrentSettings() as PortalSettings).UserInfo.UserID)));
                        if (result.IsSuccess)
                        {
                            if (string.IsNullOrEmpty(result.Message))
                            {
                                IDictionary <string, object> dynObjects = new ExpandoObject() as IDictionary <string, object>;
                                dynObjects.Add("RedirectURL", GetRedirectUrl());
                                actionResult.Data = dynObjects;
                            }
                            actionResult.Message = result.Message;
                        }
                        else
                        {
                            string errorMessage = string.Empty;
                            foreach (KeyValuePair <string, Exception> error in result.Errors)
                            {
                                errorMessage = error.Value.ToString();
                            }
                            actionResult.AddError("RegisterManager.CompleteUserCreation", errorMessage);
                        }
                    }
                    else
                    {
                        actionResult.AddError("RegisterManager.CreateUser", UserController.GetUserCreateStatus(CreateStatus));
                    }
                }
                catch (Exception exc) //Module failed to load
                {
                    Exceptions.ProcessModuleLoadException(null, exc);
                }
                return(actionResult);
            }
Пример #16
0
        //private IUserService _userService = DIContainer.Resolve<IUserService>();
        //private IMembershipService _membershipService = DIContainer.Resolve<IMembershipService>();
        #region 公共方法

        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="user">待创建的用户</param>
        /// <param name="ignoreUsername">是否忽略禁用的用户名称</param>
        /// <param name="userCreateStatus">用户帐号创建状态</param>
        /// <returns></returns>
        public User CreateUser(User user, bool ignoreUsername, out UserCreateStatus userCreateStatus)
        {
            userCreateStatus = UserCreateStatus.UnknownFailure;
            if (!ignoreUsername)
            {
                if ("*,$,#,%,^,@".Split(new char[] { ',', ',' }).Any(n => n.Equals(user.UserName, StringComparison.CurrentCultureIgnoreCase)))
                {
                    //用户输入字段为禁用字段
                    userCreateStatus = UserCreateStatus.DisallowedUsername;
                    return(null);
                }
            }
            if (GetUserIdByUserName(user.UserName) > 0)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return(null);
            }

            if (GetUser(user.UserId) != null)
            {
                userCreateStatus = UserCreateStatus.DuplicateUsername;
                return(null);
            }

            if (!string.IsNullOrEmpty(user.AccountEmail) && GetUserIdByEmail(user.AccountEmail) > 0)
            {
                userCreateStatus = UserCreateStatus.DuplicateEmailAddress;
                return(null);
            }

            if (!string.IsNullOrEmpty(user.AccountMobile))
            {
                if (GetUserIdByMobile(user.AccountMobile) > 0)
                {
                    userCreateStatus = UserCreateStatus.DuplicateMobile;
                    return(null);
                }
            }
            user.UserId = IdGenerator.Next();
            object result = base.AddByCache(user, false);
            bool   value  = false;

            bool.TryParse(result.ToString(), out value);
            if (value)
            {
                userCreateStatus = UserCreateStatus.Created;
            }
            return(user);
        }
Пример #17
0
        public string UserCreateErrorCodeToString(UserCreateStatus result)
        {
            switch (result)
            {
            case UserCreateStatus.Succeed: return("注册成功");

            case UserCreateStatus.Faild: return("注册失败");

            case UserCreateStatus.AlreadyExist: return("该用户已经存在");

            case UserCreateStatus.ComfirmError: return("密码输入有误");

            default: return("未知错误");
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void registerButton_Click(object sender, EventArgs e)
 {
     if ((UseCaptcha && ctlCaptcha.IsValid) || !UseCaptcha)
     {
         UserCreateStatus rc = membershipUtils.Validate(base.PortalId, AuthenticationType, User);
         if (rc == UserCreateStatus.AddUser)
         {
             CreateUser();
         }
         else
         {
             AddLocalizedModuleMessage(UserController.GetUserCreateStatus(rc), ModuleMessage.ModuleMessageType.RedError, true);
         }
     }
 }
        private static string GetMessageFromStatusCode(UserCreateStatus statusCode)
        {
            switch (statusCode)
            {
            case UserCreateStatus.InvalidEmail:
                return("e-mail address provided is invalid.");

            case UserCreateStatus.DuplicateUserName:
                return("User name already exists.");

            case UserCreateStatus.DuplicateEmail:
                return("A user name for that e-mail address already exists.");
            }

            return("User Manager Error");
        }
Пример #20
0
        private UserInfo CreateUser()
        {
            UserInfo user = new UserInfo();

            user.Username    = txtEmail.Text.Trim();
            user.FirstName   = txtFirstname.Text.Trim();
            user.LastName    = txtLastname.Text.Trim();
            user.PortalID    = PortalId;
            user.Email       = txtEmail.Text.Trim();
            user.DisplayName = user.FirstName + " " + user.LastName;
            string password = UserController.GeneratePassword(10);

            user.Membership.Password = password;
            user.IsSuperUser         = false;
            user.Membership.Approved = false;

            user.Profile.InitialiseProfile(PortalId);
            user.Profile.PreferredLocale   = PortalSettings.DefaultLanguage;
            user.Profile.PreferredTimeZone = PortalSettings.TimeZone;
            user.Profile.FirstName         = user.FirstName;
            user.Profile.LastName          = user.LastName;
            user.Profile.City       = txtCity.Text.Trim();
            user.Profile.PostalCode = txtPostalCode.Text.Trim();
            user.Profile.Street     = txtStreet.Text.Trim();

            UserCreateStatus status = MembershipProvider.Instance().CreateUser(ref user);

            if (status == UserCreateStatus.Success || status == UserCreateStatus.UsernameAlreadyExists)
            {
                if (status == UserCreateStatus.UsernameAlreadyExists)
                {
                    UserController.AddUserPortal(PortalId, user.UserID);
                }

                //// Add User to Standard Roles
                //RoleController roleController = new RoleController();
                //ArrayList roles = roleController.GetPortalRoles(PortalId);
                //for (int i = 0; i < roles.Count - 1; i++)
                //{
                //    RoleInfo role = (RoleInfo) roles[i];
                //    if (role.AutoAssignment == true)
                //        roleController.AddUserRole(PortalId, user.UserID, role.RoleID, Null.NullDate, Null.NullDate);
                //}
            }
            return(user);
        }
Пример #21
0
        /// <summary>
        /// CreateUser creates a new user in the Database
        /// </summary>
        /// <history>
        ///     [cnurse]	05/18/2006  Created
        /// </history>
        public void CreateUser()
        {
            if (IsRegister)
            {
                //Set the Approved status based on the Portal Settings
                if (PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration)
                {
                    User.Membership.Approved = true;
                }
                else
                {
                    User.Membership.Approved = false;
                }
            }
            else
            {
                //Set the Approved status from the value in the Authorized checkbox
                User.Membership.Approved = chkAuthorize.Checked;
            }

            if (User.Profile.LastName == Null.NullString)
            {
                User.Profile.LastName = User.LastName;
            }
            if (User.Profile.FirstName == Null.NullString)
            {
                User.Profile.FirstName = User.FirstName;
            }
            UserInfo         refUser      = User;
            UserCreateStatus createStatus = UserController.CreateUser(ref refUser);

            UserCreatedEventArgs args;

            if (createStatus == UserCreateStatus.Success)
            {
                args        = new UserCreatedEventArgs(User);
                args.Notify = chkNotify.Checked;
            }
            else // registration error
            {
                args = new UserCreatedEventArgs(null);
            }
            args.CreateStatus = createStatus;
            OnUserCreated(args);
            OnUserCreateCompleted(args);
        }
Пример #22
0
        public ActionResult RegisterLocal(LocalRegisterModel model)
        {
            if (ModelState.IsValid)
            {
                UserCreateStatus status = UserService.CreateAccount(model.Username, model.Password, model.Fullname, model.Email);
                switch (status)
                {
                case UserCreateStatus.Created:
                    ShowMessage((L)"User account created.");
                    return(RedirectToAction("login"));

                case UserCreateStatus.UsernameUsed:
                    ModelState.AddModelError("Username", (L)"Username already used!");
                    return(View(model));
                }
            }
            return(View(model));
        }
Пример #23
0
        public static string ErrorCodeToString(UserCreateStatus createStatus)
        {
            // See http://msdn.microsoft.com/en-us/library/system.web.security.membershipcreatestatus.aspx for
            // a full list of status codes.
            switch (createStatus)
            {
            case UserCreateStatus.DuplicateUserName:
                return("Username already exists. Please enter a different user name.");   //"用户名已存在。请另输入一个用户名。"

            case UserCreateStatus.DuplicateEmail:
                return("A username for that e-mail address already exists. Please enter a different e-mail address.");

            // "已存在与该电子邮件地址对应的用户名。请另输入一个电子邮件地址。"
            case UserCreateStatus.InvalidPassword:
                return("The password provided is invalid. Please enter a valid password value.");

            //提供的密码无效。请输入有效的密码值。
            case UserCreateStatus.InvalidEmail:
                return("The e-mail address provided is invalid. Please check the value and try again.");

            // "提供的电子邮件地址无效。请检查该值并重试。"
            case UserCreateStatus.InvalidAnswer:
                return("The password retrieval answer provided is invalid. Please check the value and try again.");

            //"提供的密码取回答案无效。请检查该值并重试。"
            case UserCreateStatus.InvalidQuestion:
                return("The password retrieval question provided is invalid. Please check the value and try again.");

            //"提供的密码取回问题无效。请检查该值并重试。"
            case UserCreateStatus.InvalidUserName:
                return("The user name provided is invalid. Please check the value and try again.");

            ////"提供的用户名无效。请检查该值并重试。"
            //case MembershipCreateStatus.ProviderError:
            //    return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
            ////"身份验证提供程序返回了错误。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
            //case MembershipCreateStatus.UserRejected:
            //    return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
            ////"已取消用户创建请求。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
            default:
                return("An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.");
                //"发生未知错误。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
            }
        }
Пример #24
0
        public void createDnnUser(string UserName)
        {
            UserInfo newUser = new UserInfo();

            newUser.Username    = UserName;
            newUser.PortalID    = PortalSettings.PortalId;
            newUser.DisplayName = "John Doe";
            newUser.Email       = "*****@*****.**";
            newUser.FirstName   = "John";
            newUser.LastName    = "Doe";
            newUser.Profile.SetProfileProperty("SSN", "123-456-7890");

            UserCreateStatus rc = DotNetNuke.Entities.Users.UserController.CreateUser(ref newUser);

            if (rc == UserCreateStatus.Success)
            {
                // Manual add role to user
                addRoleToUser(newUser, "Registered Users", DateTime.MaxValue);
            }
        }
Пример #25
0
 /// <summary>
 /// 用户名验证
 /// </summary>
 /// <param name="userName">待创建的用户名</param>
 /// <param name="userCreateStatus">用户帐号创建状态</param>
 public void RegisterValidate(string userName, out UserCreateStatus userCreateStatus)
 {
     userCreateStatus = UserCreateStatus.UnknownFailure;
     //判断用户名是否唯一
     if (GetUserIdByUserName(userName) > 0)
     {
         userCreateStatus = UserCreateStatus.DuplicateUsername;
         return;
     }
     if (GetUser(GetUserIdByUserName(userName)) != null)
     {
         userCreateStatus = UserCreateStatus.DuplicateUsername;
         return;
     }
     else
     {
         userCreateStatus = UserCreateStatus.Created;
         return;
     }
 }
Пример #26
0
        public AddUserResult AddUser(HumanName name,
                                     AddUserSettings settings,
                                     string email, bool useEmailAsUserName, int portalId)
        {
            var userName = NameFormatter.FormatUserName(settings.UserNameFormat, name, email, useEmailAsUserName);
            var user     = new UserInfo {
                FirstName   = name.FirstName,
                LastName    = name.LastName,
                DisplayName = NameFormatter.FormatDisplayName(GetDisplayNameFormat(settings, PortalSettings.Current), name, userName),
                Email       = email,
                Username    = userName,
                PortalID    = portalId
            };

            var password = GeneratePassword(settings.DesiredPasswordLength,
                                            MembershipProviderConfig.MinNonAlphanumericCharacters,
                                            settings.AllowedSpecialChars);

            user.Membership.Password = password;

            UserCreateStatus userCreateStatus = UserController.CreateUser(ref user);

            if (userCreateStatus == UserCreateStatus.Success)
            {
                UpdateUserProfile(user, name, portalId);

                try {
                    AssignUserToRoles(user, settings.RoleIds, portalId);
                }
                catch (Exception ex) {
                    userCreateStatus = UserCreateStatus.UnexpectedError;
                    Exceptions.LogException(new SecurityException("Cannot assign user to roles", ex));
                }
            }

            return(new AddUserResult {
                UserCreateStatus = userCreateStatus,
                User = user,
                Password = password
            });
        }
Пример #27
0
        public User CreateUser(string emailAddress, string userName, string password, Gender gender, out UserCreateStatus status)
        {
            var currentUser = _userRepo.Find().WithEmail(emailAddress).SingleOrDefault();
            if (currentUser != null)
            {
                status = UserCreateStatus.DuplicateEmail;
                return null;
            }

            currentUser = _userRepo.Find().WithUserName(userName).SingleOrDefault();
            if (currentUser != null)
            {
                status = UserCreateStatus.DuplicateUserName;
                return null;
            }

            var now = DateTime.UtcNow;

            // Generate Hashed Password and Salt
            string hashedPassword;
            string salt;
            _saltedHash.GetHashAndSaltString(password, out hashedPassword, out salt);

            var user = new User
                           {
                               EmailAddress = emailAddress,
                               UserName = userName,
                               Salt = salt,
                               Password = hashedPassword,
                               Gender = gender.ToString(),
                               AccountStatusId = (int) AccountStatus.InActive,
                               LastLoggedIn = now,
                               CreatedOn = now,
                               UpdatedOn = now,
                               RegistrationStep = 2
                           };

            _userRepo.Insert(user);
            status = UserCreateStatus.Success;
            return user;
        }
        private bool CreateDnnUserInfo(UserInfo userInfo, bool doLogin)
        {
            var portalSettings = DotNetNuke.Entities.Portals.PortalSettings.Current;
            UserCreateStatus userCreateStatus = UserController.CreateUser(ref userInfo);

            if (userCreateStatus == UserCreateStatus.Success)
            {
                //send notification to portal administrator of new user registration
                //check the receive notification setting first, but if register type is Private, we will always send the notification email.
                //because the user need administrators to do the approve action so that he can continue use the website.
                if (portalSettings.EnableRegisterNotification || portalSettings.UserRegistration == (int)DotNetNuke.Common.Globals.PortalRegistrationType.PrivateRegistration)
                {
                    Mail.SendMail(userInfo, DotNetNuke.Services.Mail.MessageType.UserRegistrationAdmin, portalSettings);
                    SendAdminNotification(userInfo, portalSettings);
                }
                //because of some bugs in dnn, sometimes it must be approved after getting it from dnn.
                if (!userInfo.Membership.Approved)
                {
                    var current = UserController.GetUserByName(userInfo.Username);
                    //due to dnn bug I have to update user again.
                    current.FirstName = userInfo.FirstName.ToStringObj().Trim();
                    current.LastName  = userInfo.LastName.ToStringObj().Trim();

                    current.Membership.Approved = true;
                    UserController.UpdateUser(userInfo.PortalID, current);
                    UserController.ApproveUser(current);
                }
                if (doLogin)
                {
                    UserLoginStatus loginStatus = UserLoginStatus.LOGIN_FAILURE;
                    UserController.UserLogin(portalSettings.PortalId, userInfo.Username, userInfo.Membership.Password, "", portalSettings.PortalName, "", ref loginStatus, false);
                }
                Mail.SendMail(userInfo, DotNetNuke.Services.Mail.MessageType.UserRegistrationPublic, portalSettings);

                return(true);
            }
            else
            {
                return(false);
            }
        }
        public void Test_CreateUser()
        {
            IApplicationSettings applicationSettings = Workmate.Components.InstanceContainer.ApplicationSettings;

            WorkmateRoleProvider       roleProvider       = new WorkmateRoleProvider();
            WorkmateMembershipProvider membershipProvider = new WorkmateMembershipProvider();

            DummyUser user = this.DummyDataManager.GetDummy();

            string        firstName     = user.Firstname;
            string        lastName      = user.Surname;
            string        password      = "******";
            AccountStatus accountStatus = AccountStatus.Valid;
            TimeZoneInfo  timeZoneInfo  = TimeZoneUtility.GetGMTStandardTimeZone();

            IUserBasic userBasic = new UserBasic(user.Email, user.Email, 1)
            {
                AccountStatus = accountStatus,
                TimeZoneInfo  = timeZoneInfo
            };

            Guid            uniqueId;
            List <UserRole> userRoles = new List <UserRole>()
            {
                UserRole.SystemAdministrator, UserRole.Registered
            };
            UserCreateStatus userCreateStatus = membershipProvider.CreateUser(ref userBasic, password, userRoles, UserNameDisplayMode.FullName
                                                                              , firstName, lastName
                                                                              , DebugUtility.GetRandomEnum <Workmate.Components.Contracts.Membership.Gender>(this.Random)
                                                                              , out uniqueId, this.Application.ApplicationId).Status;

            Assert.AreEqual(UserCreateStatus.Success, userCreateStatus);
            Assert.Greater(userBasic.UserId, 0);

            userBasic = membershipProvider.GetUserBasic(userBasic.UserId, false);

            Assert.AreEqual(user.Email, userBasic.UserName);
            Assert.AreEqual(user.Email, userBasic.Email);
            Assert.AreEqual(accountStatus, userBasic.AccountStatus);
            Assert.AreEqual(timeZoneInfo.Id, userBasic.TimeZoneInfoId);
        }
Пример #30
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // 尝试注册用户
                UserCreateStatus createResult
                    =
                        MembershipService.CreateUser(
                            model.UserName
                            , model.Password
                            , model.ConfirmPassword
                            , model.Address
                            , model.Consignee
                            , model.Tel
                            , model.Zipcode
                            );

                if (createResult == UserCreateStatus.Succeed)
                {
                    FormsService.SignIn(model.UserName, false /* createPersistentCookie */);
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    if (createResult == UserCreateStatus.Faild)
                    {
                        ModelState.AddModelError("", "创建失败");
                    }
                    if (createResult == UserCreateStatus.AlreadyExist)
                    {
                        ModelState.AddModelError("", "该用户已存在");
                    }
                }
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
            return(View(model));
        }
Пример #31
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                UserCreateStatus status = UserService.CreateAccount(model.Username, model.Fullname, model.Email);
                switch (status)
                {
                case UserCreateStatus.Created:
                    ShowMessage((L)"User account created, please login once again.");
                    return(RedirectToAction("login"));

                case UserCreateStatus.UsernameUsed:
                    ModelState.AddModelError("Username", (L)"Username already used!");
                    break;

                case UserCreateStatus.InsufficientPassword:
                    ModelState.AddModelError("Password", (L)"Insufficient password complexity!");
                    break;
                }
            }
            return(View(model));
        }
Пример #32
0
        public static string ErrorCodeToString(UserCreateStatus createStatus)
        {
            // See http://msdn.microsoft.com/en-us/library/system.web.security.membershipcreatestatus.aspx for
            // a full list of status codes.
            switch (createStatus)
            {
                case UserCreateStatus.DuplicateUserName:
                    return "Username already exists. Please enter a different user name.";//"用户名已存在。请另输入一个用户名。"

                case UserCreateStatus.DuplicateEmail:
                    return "A username for that e-mail address already exists. Please enter a different e-mail address.";
                // "已存在与该电子邮件地址对应的用户名。请另输入一个电子邮件地址。"
                case UserCreateStatus.InvalidPassword:
                    return "The password provided is invalid. Please enter a valid password value.";
                //提供的密码无效。请输入有效的密码值。
                case UserCreateStatus.InvalidEmail:
                    return "The e-mail address provided is invalid. Please check the value and try again.";
                // "提供的电子邮件地址无效。请检查该值并重试。"
                case UserCreateStatus.InvalidAnswer:
                    return "The password retrieval answer provided is invalid. Please check the value and try again.";
                //"提供的密码取回答案无效。请检查该值并重试。"
                case UserCreateStatus.InvalidQuestion:
                    return "The password retrieval question provided is invalid. Please check the value and try again.";
                //"提供的密码取回问题无效。请检查该值并重试。"
                case UserCreateStatus.InvalidUserName:
                    return "The user name provided is invalid. Please check the value and try again.";
                ////"提供的用户名无效。请检查该值并重试。"
                //case MembershipCreateStatus.ProviderError:
                //    return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
                ////"身份验证提供程序返回了错误。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
                //case MembershipCreateStatus.UserRejected:
                //    return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
                ////"已取消用户创建请求。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
                default:
                    return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
                //"发生未知错误。请验证您的输入并重试。如果问题仍然存在,请与系统管理员联系。"
            }
        }
Пример #33
0
        internal static bool CreateDnnAccount(CustomerAccount cust, int portalId, ref UserCreateStatus status)
        {
            try
            {
                if (cust == null)
                {
                    throw new ArgumentNullException("cust");
                }

                var ui = new UserInfo();
                if (string.IsNullOrWhiteSpace(cust.Username))
                {
                    cust.Username = BuildUsername(cust);
                }

                ui.InitRequiredProperties(
                    cust.Username,
                    cust.FirstName,
                    cust.LastName,
                    cust.Email,
                    cust.Password,
                    portalId,
                    true);

                UpdateUserInfo(ui, cust);
                status    = UserController.CreateUser(ref ui);
                cust.Bvin = ui.UserID.ToString();

                _Logger.LogMessage(string.Format("User ({0}||{1}) created successfully and assigned a customer number ({2}).", ui.Username, ui.UserID, cust.Bvin));

                return(status == UserCreateStatus.Success);
            }
            catch (Exception e)
            {
                LogError(e);
                throw;
            }
        }
Пример #34
0
        public User CreateUser(string username, string password, string email, string[] roles,
			bool isVerified, out UserCreateStatus createStatus)
        {
            // Validate username.
            if (!ValidateParameter(username))
            {
                createStatus = UserCreateStatus.InvalidUserName;
                return null;
            }

            // Validate password.
            if (!ValidateParameter(password))
            {
                createStatus = UserCreateStatus.InvalidPassword;
                return null;
            }

            // Check if username is already present.
            if (_store.GetUser(FormatUsername(username)) != null)
            {
                createStatus = UserCreateStatus.DuplicateUserName;
                return null;
            }

            // Check if email is already present.
            if (_store.GetUserByEmail(email) != null)
            {
                createStatus = UserCreateStatus.DuplicateEmail;
                return null;
            }

            // Create user.
            _store.CreateUser(FormatUsername(username), EncryptPassword(password), roles, email, isVerified);
            createStatus = UserCreateStatus.Success;

            return GetUser(username);
        }
        protected string CompleteUserCreation(UserCreateStatus createStatus, UserInfo newUser, bool notify, bool register)
        {
            var strMessage = "";
            if (register)
            {
                //send notification to portal administrator of new user registration
                //check the receive notification setting first, but if register type is Private, we will always send the notification email.
                //because the user need administrators to do the approve action so that he can continue use the website.
                if (PortalSettings.EnableRegisterNotification || PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PrivateRegistration)
                {
                    strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationAdmin, PortalSettings);
                    SendAdminNotification(newUser, PortalSettings);
                }

                var loginStatus = UserLoginStatus.LOGIN_FAILURE;

                //complete registration
                switch (PortalSettings.UserRegistration)
                {
                    case (int)Globals.PortalRegistrationType.PrivateRegistration:
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPrivate, PortalSettings);

                        //show a message that a portal administrator has to verify the user credentials
                        if (String.IsNullOrEmpty(strMessage))
                        {
                            strMessage += DotNetNuke.Services.Localization.Localization.GetString("PrivateConfirmationMessage", DotNetNuke.Services.Localization.Localization.SharedResourceFile);
                        }
                        break;
                    case (int)Globals.PortalRegistrationType.PublicRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                    case (int)Globals.PortalRegistrationType.VerifiedRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                }
                //store preferredlocale in cookie
                DotNetNuke.Services.Localization.Localization.SetLanguage(newUser.Profile.PreferredLocale);
            }
            else
            {
                if (notify)
                {
                    //Send Notification to User
                    if (PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.VerifiedRegistration)
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                    }
                    else
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                    }
                }
            }

            return strMessage;
        }
Пример #36
0
 public static string GetUserCreateStatus(UserCreateStatus UserRegistrationStatus)
 {
     switch (UserRegistrationStatus)
     {
         case UserCreateStatus.DuplicateEmail:
             return Localization.GetString("UserEmailExists");
         case UserCreateStatus.InvalidAnswer:
             return Localization.GetString("InvalidAnswer");
         case UserCreateStatus.InvalidEmail:
             return Localization.GetString("InvalidEmail");
         case UserCreateStatus.InvalidPassword:
             string strInvalidPassword = Localization.GetString("InvalidPassword");
             strInvalidPassword = strInvalidPassword.Replace("[PasswordLength]", MembershipProviderConfig.MinPasswordLength.ToString());
             strInvalidPassword = strInvalidPassword.Replace("[NoneAlphabet]", MembershipProviderConfig.MinNonAlphanumericCharacters.ToString());
             return strInvalidPassword;
         case UserCreateStatus.PasswordMismatch:
             return Localization.GetString("PasswordMismatch");
         case UserCreateStatus.InvalidQuestion:
             return Localization.GetString("InvalidQuestion");
         case UserCreateStatus.InvalidUserName:
             return Localization.GetString("InvalidUserName");
         case UserCreateStatus.UserRejected:
             return Localization.GetString("UserRejected");
         case UserCreateStatus.DuplicateUserName:
         case UserCreateStatus.UserAlreadyRegistered:
         case UserCreateStatus.UsernameAlreadyExists:
             return Localization.GetString("UserNameExists");
         case UserCreateStatus.ProviderError:
         case UserCreateStatus.DuplicateProviderUserKey:
         case UserCreateStatus.InvalidProviderUserKey:
             return Localization.GetString("RegError");
         default:
             throw new ArgumentException("Unknown UserCreateStatus value encountered", "UserRegistrationStatus");
     }
 }
Пример #37
0
            /// <summary>
            /// Constructs a new UserCreatedEventArgs
            /// </summary>
            /// <param name="newUser">The newly Created User</param>
            /// <history>
            /// 	[cnurse]	03/08/2006  Created
            /// </history>
            public UserCreatedEventArgs( UserInfo newUser )
            {
                _CreateStatus = UserCreateStatus.Success;

                _NewUser = newUser;
            }
Пример #38
0
        protected string CompleteUserCreation(UserCreateStatus createStatus, UserInfo newUser, bool notify, bool register)
        {
            var strMessage = "";
            var message = ModuleMessage.ModuleMessageType.RedError;
            if (register)
            {
				//send notification to portal administrator of new user registration
				//check the receive notification setting first, but if register type is Private, we will always send the notification email.
				//because the user need administrators to do the approve action so that he can continue use the website.
				if (PortalSettings.EnableRegisterNotification || PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PrivateRegistration)
				{
				    strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationAdmin, PortalSettings);
				    SendAdminNotification(newUser, PortalSettings);
				}

                var loginStatus = UserLoginStatus.LOGIN_FAILURE;

                //complete registration
                switch (PortalSettings.UserRegistration)
                {
                    case (int) Globals.PortalRegistrationType.PrivateRegistration:
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPrivate, PortalSettings);

                        //show a message that a portal administrator has to verify the user credentials
                        if (string.IsNullOrEmpty(strMessage))
                        {
                            strMessage += Localization.GetString("PrivateConfirmationMessage", Localization.SharedResourceFile);
                            message = ModuleMessage.ModuleMessageType.GreenSuccess;
                        }
                        break;
                    case (int) Globals.PortalRegistrationType.PublicRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                    case (int) Globals.PortalRegistrationType.VerifiedRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                }
                //affiliate
                if (!Null.IsNull(User.AffiliateID))
                {
                    var objAffiliates = new AffiliateController();
                    objAffiliates.UpdateAffiliateStats(newUser.AffiliateID, 0, 1);
                }
                //store preferredlocale in cookie
                Localization.SetLanguage(newUser.Profile.PreferredLocale);
                if (IsRegister && message == ModuleMessage.ModuleMessageType.RedError)
                {
                    AddLocalizedModuleMessage(string.Format(Localization.GetString("SendMail.Error", Localization.SharedResourceFile), strMessage), message, (!String.IsNullOrEmpty(strMessage)));
                }
                else
                {
                    AddLocalizedModuleMessage(strMessage, message, (!String.IsNullOrEmpty(strMessage)));
                }
            }
            else
            {
                if (notify)
                {
					//Send Notification to User
                    if (PortalSettings.UserRegistration == (int) Globals.PortalRegistrationType.VerifiedRegistration)
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                    }
                    else
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                    }
                }
            }
           
            return strMessage;
        }
        private void ValidateForDuplicateDisplayName(UserInfo user, ref UserCreateStatus createStatus)
        {
            Hashtable settings = UserController.GetUserSettings(user.PortalID);
            bool requireUniqueDisplayName = Convert.ToBoolean(settings["Registration_RequireUniqueDisplayName"]);

            if (requireUniqueDisplayName)
            {
                UserInfo duplicateUser = GetUserByDisplayName(Null.NullInteger, user.DisplayName);
                if (duplicateUser != null)
                {
                    createStatus = UserCreateStatus.DuplicateDisplayName;
                }
            }
        }
Пример #40
0
 /// <summary>
 /// 创建用户
 /// </summary>
 /// <param name="user">待创建的用户</param>
 /// <param name="password">密码</param>
 /// <param name="userCreateStatus">用户帐号创建状态</param>
 /// <returns>创建成功返回IUser,创建失败返回null</returns>
 public IUser CreateUser(IUser user, string password, out UserCreateStatus userCreateStatus)
 {
     return CreateUser(user, password, string.Empty, string.Empty, false, out userCreateStatus);
 }
Пример #41
0
        protected string CompleteUserCreation(UserCreateStatus createStatus, UserInfo newUser, bool notify, bool register)
        {
            string strMessage = "";
            ModuleMessage.ModuleMessageType message = ModuleMessage.ModuleMessageType.RedError;
            if (register)
            {
				//send notification to portal administrator of new user registration
                strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationAdmin, PortalSettings);

                var loginStatus = UserLoginStatus.LOGIN_FAILURE;

                //complete registration
                switch (PortalSettings.UserRegistration)
                {
                    case (int) Globals.PortalRegistrationType.PrivateRegistration:
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPrivate, PortalSettings);

                        //show a message that a portal administrator has to verify the user credentials
                        if (string.IsNullOrEmpty(strMessage))
                        {
                            strMessage += string.Format(Localization.GetString("PrivateConfirmationMessage", Localization.SharedResourceFile), newUser.Email);
                            message = ModuleMessage.ModuleMessageType.GreenSuccess;
                        }
                        break;
                    case (int) Globals.PortalRegistrationType.PublicRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                    case (int) Globals.PortalRegistrationType.VerifiedRegistration:
                        Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                        UserController.UserLogin(PortalSettings.PortalId, newUser.Username, newUser.Membership.Password, "", PortalSettings.PortalName, "", ref loginStatus, false);
                        break;
                }
                //affiliate
                if (!Null.IsNull(User.AffiliateID))
                {
                    var objAffiliates = new AffiliateController();
                    objAffiliates.UpdateAffiliateStats(newUser.AffiliateID, 0, 1);
                }
                //store preferredlocale in cookie
                Localization.SetLanguage(newUser.Profile.PreferredLocale);
                if (IsRegister && message == ModuleMessage.ModuleMessageType.RedError)
                {
                    AddLocalizedModuleMessage(string.Format(Localization.GetString("SendMail.Error", Localization.SharedResourceFile), strMessage), message, (!String.IsNullOrEmpty(strMessage)));
                }
                else
                {
                    AddLocalizedModuleMessage(strMessage, message, (!String.IsNullOrEmpty(strMessage)));
                }
            }
            else
            {
                if (notify)
                {
					//Send Notification to User
                    if (PortalSettings.UserRegistration == (int) Globals.PortalRegistrationType.VerifiedRegistration)
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationVerified, PortalSettings);
                    }
                    else
                    {
                        strMessage += Mail.SendMail(newUser, MessageType.UserRegistrationPublic, PortalSettings);
                    }
                }
            }
            //Log Event to Event Log
            var objEventLog = new EventLogController();
            objEventLog.AddLog(newUser, PortalSettings, UserId, newUser.Username, EventLogController.EventLogType.USER_CREATED);
            return strMessage;
        }
Пример #42
0
 /// <summary>
 /// 用户名验证
 /// </summary>
 /// <param name="userName">待创建的用户名</param>
 /// <param name="ignoreDisallowedUsername">是否忽略禁用的用户名称</param>
 /// <param name="userCreateStatus">用户帐号创建状态</param>
 public void RegisterValidate(string userName, bool ignoreDisallowedUsername, out UserCreateStatus userCreateStatus)
 {
     userRepository.RegisterValidate(userName, ignoreDisallowedUsername, out userCreateStatus);
 }
Пример #43
0
        static string UserCreateStatusToString(UserCreateStatus createStatus)
        {
            // See http://go.microsoft.com/fwlink/?LinkID=177550 for
            // a full list of status codes.
            switch (createStatus)
            {
                case UserCreateStatus.DuplicateUserName:
                    return "User name already exists. Please enter a different user name.";

                case UserCreateStatus.DuplicateEmail:
                    return "A user name for that e-mail address already exists. Please enter a different e-mail address.";

                case UserCreateStatus.InvalidPassword:
                    return "The password provided is invalid. Please enter a valid password value.";

                case UserCreateStatus.InvalidEmail:
                    return "The e-mail address provided is invalid. Please check the value and try again.";

                case UserCreateStatus.InvalidAnswer:
                    return "The password retrieval answer provided is invalid. Please check the value and try again.";

                case UserCreateStatus.InvalidQuestion:
                    return "The password retrieval question provided is invalid. Please check the value and try again.";

                case UserCreateStatus.InvalidUserName:
                    return "The user name provided is invalid. Please check the value and try again.";

                case UserCreateStatus.ProviderError:
                    return
                        "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

                case UserCreateStatus.UserRejected:
                    return
                        "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

                default:
                    return
                        "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
            }
        }
Пример #44
0
 /// <summary>
 /// Retruns a String corresponding to the Registration Status of the User
 /// </summary>
 /// <param name="UserRegistrationStatus">The AUserCreateStatus</param>
 /// <returns>A String</returns>
 public static string GetUserCreateStatus(UserCreateStatus UserRegistrationStatus)
 {
     if (UserRegistrationStatus == UserCreateStatus.DuplicateEmail)
     {
         return Localization.GetString("UserEmailExists");
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidAnswer)
     {
         return Localization.GetString("InvalidAnswer");
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidEmail)
     {
         return Localization.GetString("InvalidEmail");
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidQuestion)
     {
         return Localization.GetString("InvalidQuestion");
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidUserName)
     {
         return Localization.GetString("InvalidUserName");
     }
     else if (UserRegistrationStatus == UserCreateStatus.UserRejected)
     {
         return Localization.GetString("UserRejected");
     }
     else if (UserRegistrationStatus == UserCreateStatus.PasswordMismatch)
     {
         return Localization.GetString("PasswordMismatch");
     }
     else if (UserRegistrationStatus == UserCreateStatus.UsernameAlreadyExists || UserRegistrationStatus == UserCreateStatus.UserAlreadyRegistered || UserRegistrationStatus == UserCreateStatus.DuplicateUserName)
     {
         return Localization.GetString("UserNameExists");
     }
     else if (UserRegistrationStatus == UserCreateStatus.DuplicateProviderUserKey || UserRegistrationStatus == UserCreateStatus.InvalidProviderUserKey || UserRegistrationStatus == UserCreateStatus.ProviderError)
     {
         return Localization.GetString("RegError");
     }
     else if (UserRegistrationStatus == UserCreateStatus.Success || UserRegistrationStatus == UserCreateStatus.UnexpectedError)
     {
         return null;
     }
     else if (UserRegistrationStatus == UserCreateStatus.InvalidPassword)
     {
         string replace = Localization.GetString("InvalidPassword");
         replace = replace.Replace("[PasswordLength]", MembershipProviderConfig.MinPasswordLength.ToString());
         return replace.Replace("[NoneAlphabet]", MembershipProviderConfig.MinNonAlphanumericCharacters.ToString());
     }
     return null;
 }
Пример #45
0
        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="user">待创建的用户</param>
        /// <param name="password">密码</param>
        /// <param name="passwordQuestion">密码问题</param>
        /// <param name="passwordAnswer">密码答案</param>
        /// <param name="ignoreDisallowedUsername">是否忽略禁用的用户名称</param>
        /// <param name="userCreateStatus">用户帐号创建状态</param>
        /// <returns>创建成功返回IUser,创建失败返回null</returns>
        public IUser CreateUser(IUser user, string password, string passwordQuestion, string passwordAnswer, bool ignoreDisallowedUsername, out UserCreateStatus userCreateStatus)
        {
            User user_object = user as User;
            if (user_object == null)
            {
                userCreateStatus = UserCreateStatus.UnknownFailure;
                return null;
            }

            //密码不合法
            string errorMessage = string.Empty;
            if (!Utility.ValidatePassword(password, out errorMessage))
            {
                userCreateStatus = UserCreateStatus.InvalidPassword;
                return null;
            }

            ISettingsManager<UserSettings> userSettingsManager = DIContainer.Resolve<ISettingsManager<UserSettings>>();
            UserSettings userSettings = userSettingsManager.Get();
            user_object.PasswordFormat = (int)userSettings.UserPasswordFormat;
            user_object.Password = UserPasswordHelper.EncodePassword(password, userSettings.UserPasswordFormat);
            user_object.PasswordQuestion = passwordQuestion;
            user_object.PasswordAnswer = passwordAnswer;
            user_object.IsModerated = userSettings.AutomaticModerated;
            EventBus<User, CreateUserEventArgs>.Instance().OnBefore(user_object, new CreateUserEventArgs(password));
            user = userRepository.CreateUser(user_object, ignoreDisallowedUsername, out userCreateStatus);

            if (userCreateStatus == UserCreateStatus.Created)
                EventBus<User, CreateUserEventArgs>.Instance().OnAfter(user_object, new CreateUserEventArgs(password));
            return user;
        }