public SecurityCreateUserException(MembershipCreateUserException exception)
     : base(errors.ContainsKey(exception.StatusCode)
         ? errors[exception.StatusCode]
         : UnknownCreateUserError,
         exception)
 {
 }
 public void WhenITryToCreateANewUserWithTheSameUserName()
 {
     try
     {
         membershipUser = Membership.CreateUser(knownUserName, "password");
     }
     catch (MembershipCreateUserException e)
     {
         ex = e;
     }
 }
 public void WhenITryToCreateANewUserWithTheSameEmail()
 {
     var newUserName = Guid.NewGuid().ToString();
     try
     {
         membershipUser = Membership.CreateUser(newUserName, password, email);
     }
     catch (MembershipCreateUserException e)
     {
         ex = e;
     }
 }
Ejemplo n.º 4
0
        public Guid AddAccount(string email, string password, bool test)
        {
            string username = System.Web.Security.Membership.GetUserNameByEmail(email);
            
            // cannot add user if email is already taken...
            if (!string.IsNullOrEmpty(username))
            {
                try
                {
                    Roles.AddUserToRole(username, "Member");
                }
                catch (Exception)
                {
                    
                    
                }
                
                return (Guid)System.Web.Security.Membership.GetUser(username).ProviderUserKey;
            }

            MembershipUser user = null;
            MembershipCreateStatus status;

            user = System.Web.Security.Membership.CreateUser(email, password, email, "none", "none", true, out status);

            if (status == MembershipCreateStatus.Success)
            {
                Roles.AddUserToRole(user.UserName, "Member");
                return (Guid)user.ProviderUserKey;
            }
            else
            {
                MembershipCreateUserException ex = new MembershipCreateUserException(MembershipHelper.GetErrorMessage(status));
                throw new FaultException<MembershipCreateUserException>(ex);
            }

            
        }
        public void CreateUser_displays_username_validation_error_when_duplicate_username_supplied()
        {
            // arrange
            var exception = new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);
            _userService.Setup(x => x.Create(null, null, null, null, null)).Throws(exception);
            var viewModel = new CreateUserViewModel();

            // act
            var returnedResult = _controller.CreateUser(viewModel);

            // assert
            var result = Assert.IsType<ViewResult>(returnedResult);
            Assert.Equal("", result.ViewName);
            Assert.Equal(viewModel, result.Model);
            var modelState = result.ViewData.ModelState;
            Assert.True(modelState.ContainsKey(string.Empty));
            Assert.Equal(exception.Message, modelState[string.Empty].Errors.First().ErrorMessage);
        }
        public void RegisterShouldReturnErrorIfRegistrationThrowsMembershipException(RegistrationInfo registrationInfo, MembershipCreateUserException exception, [Frozen] IAccountRepository repo, [Frozen] INotificationService notifyService)
        {
            repo.When(x => x.RegisterUser(Arg.Any<RegistrationInfo>())).Do(x => { throw new MembershipCreateUserException(); });
              var controller = new AccountsController(repo, notifyService);

              var result = controller.Register(registrationInfo);
              result.Should().BeOfType<ViewResult>().Which.Model.Should().Be(registrationInfo);
              result.Should().BeOfType<ViewResult>().Which.ViewData.ModelState.Should().ContainKey(nameof(registrationInfo.Email))
            .WhichValue.Errors.Should().Contain(x => x.ErrorMessage == exception.Message);
        }
Ejemplo n.º 7
0
        public void RegisterShouldReturnErrorIfRegistrationThrowsMembershipException(Database db, [Content] DbItem item, Item profileItem, RegistrationInfo registrationInfo, MembershipCreateUserException exception, [Frozen] IAccountRepository repo, [Frozen] INotificationService notifyService, [Frozen] IAccountsSettingsService accountsSettingsService, [Frozen] IUserProfileService userProfileService)
        {
            repo.When(x => x.RegisterUser(Arg.Any<string>(), Arg.Any<string>(), Arg.Any<string>())).Do(x => { throw new MembershipCreateUserException(); });
              userProfileService.GetUserDefaultProfileId().Returns(profileItem.ID.ToString());

              var controller = new AccountsController(repo, notifyService, accountsSettingsService, userProfileService);

              var fakeSite = new FakeSiteContext(new StringDictionary
              {
            {
              "rootPath", "/sitecore/content"
            },
            {
              "startItem", item.Name
            }
              }) as SiteContext;
              fakeSite.Database = db;
              Language.Current = Language.Invariant;

              using (new SiteContextSwitcher(fakeSite))
              {
            var result = controller.Register(registrationInfo);
            result.Should().BeOfType<ViewResult>().Which.Model.Should().Be(registrationInfo);
            result.Should().BeOfType<ViewResult>().Which.ViewData.ModelState.Should().ContainKey(nameof(registrationInfo.Email))
              .WhichValue.Errors.Should().Contain(x => x.ErrorMessage == exception.Message);
              }
        }
Ejemplo n.º 8
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    if (db.Authors.Find(model.UserName) != null || db.Students.Find(model.UserName) != null)
                    {
                        MembershipCreateUserException e = new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);
                        throw e;
                    }
                    if (model.AccountType == AccountType.Author)
                    {
                        try
                        {
                            Author author = new Author();
                            author.AuthorUserName = model.UserName;
                            author.Password = model.Password;
                            author.FirstName = model.FirstName;
                            author.LastName = model.LastName;
                            author.PersonalEmail = model.PersonalEmail;
                            author.Courses = new List<Course>();
                            db.Authors.Add(author);
                            db.SaveChanges();
                        }
                        catch (DbEntityValidationException dbEx)
                        {
                            foreach (var validationErrors in dbEx.EntityValidationErrors)
                            {
                                foreach (var validationError in validationErrors.ValidationErrors)
                                {
                                    Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                                }
                            }
                        }
                        LoginUser(model.UserName, false);
                        return RedirectToAction("Index", "Author"); // redirect to Author home page
                    }
                    else
                    {
                        Author student = new Author();
                        student.AuthorUserName = model.UserName;
                        student.Password = model.Password;
                        student.FirstName = model.FirstName;
                        student.LastName = model.LastName;
                        student.PersonalEmail = model.PersonalEmail;
                        db.Authors.Add(student);
                        db.SaveChanges();
                        LoginUser(model.UserName, false);
                        return RedirectToAction("Index", "Home"); // redirect to student home page
                    }

                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }