public CreateUserStatus CreateUser(RegistrationData user, [Required(ErrorMessageResourceName = "ValidationErrorRequiredField", ErrorMessageResourceType = typeof(ValidationErrorResources))] [RegularExpression("^.*[^a-zA-Z0-9].*$", ErrorMessageResourceName = "ValidationErrorBadPasswordStrength", ErrorMessageResourceType = typeof(ValidationErrorResources))] [StringLength(50, MinimumLength = 7, ErrorMessageResourceName = "ValidationErrorBadPasswordLength", ErrorMessageResourceType = typeof(ValidationErrorResources))] string password) { if (user == null) { throw new ArgumentNullException("user"); } // Run this BEFORE creating the user to make sure roles are enabled and the default role is available. // // If there is a problem with the role manager, it is better to fail now than to fail after the user is created. if (!Roles.RoleExists(UserRegistrationService.DefaultRole)) { Roles.CreateRole(UserRegistrationService.DefaultRole); } // NOTE: ASP.NET by default uses SQL Server Express to create the user database. // CreateUser will fail if you do not have SQL Server Express installed. MembershipCreateStatus createStatus; Membership.CreateUser(user.UserName, password, user.Email, user.Question, user.Answer, true, null, out createStatus); if (createStatus != MembershipCreateStatus.Success) { return(UserRegistrationService.ConvertStatus(createStatus)); } // Assign the user to the default role. // This will fail if role management is disabled. Roles.AddUserToRole(user.UserName, UserRegistrationService.DefaultRole); // Set the friendly name (profile setting). // This will fail if the web.config is configured incorrectly. ProfileBase profile = ProfileBase.Create(user.UserName, true); profile.SetPropertyValue("FriendlyName", user.FriendlyName); profile.Save(); return(CreateUserStatus.Success); }