Exemplo n.º 1
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
            });
        }
Exemplo n.º 2
0
 string GetDisplayNameFormat(AddUserSettings settings, PortalSettings portalSettings)
 {
     return(!string.IsNullOrEmpty(settings.DisplayNameFormat)
                   ? settings.DisplayNameFormat
                       : portalSettings.Registration.DisplayNameFormat);
 }