CodeFirstMembershipProvider.CreateAccount C# (CSharp) Method

CreateAccount() public method

public CreateAccount ( string userName, string password, string email, bool requireConfirmationToken ) : string
userName string
password string
email string
requireConfirmationToken bool
return string
        public override string CreateAccount(string userName, string password, string email, bool requireConfirmationToken)
        {
            if (string.IsNullOrEmpty(password))
                    {
                        throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
                    }
                    string hashedPassword = CodeFirstCrypto.HashPassword(password);
                    if (hashedPassword.Length > 128)
                    {
                        throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
                    }
                    if (string.IsNullOrEmpty(userName))
                    {
                        throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName);
                    }
                    if (string.IsNullOrEmpty(email))
                    {
                        throw new MembershipCreateUserException(MembershipCreateStatus.InvalidEmail);
                    }
                    using ($safeprojectname$Context context = new $safeprojectname$Context())
                    {
                        dynamic user = context.Users.FirstOrDefault(Usr => Usr.Username == userName);
                        dynamic emailuser = context.Users.FirstOrDefault(Usr => Usr.Email == email);
                        if (user != null)
                        {
                            throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);
                        }
                        if (emailuser != null)
                        {
                            throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateEmail);
                        }
                        string token = null;
                        if (requireConfirmationToken)
                        {
                            token = CodeFirstCrypto.GenerateToken();
                        }
                        int defaultNumPasswordFailures = 0;
                        User NewUser = new User
                        {
                            UserId = Guid.NewGuid(),
                            Username = userName,
                            Password = hashedPassword,
                            IsConfirmed = !requireConfirmationToken,
                            Email = email,
                            ConfirmationToken = token,
                            CreateDate = DateTime.UtcNow,
                            PasswordChangedDate = DateTime.UtcNow,
                            PasswordFailuresSinceLastSuccess = defaultNumPasswordFailures,
                            LastPasswordFailureDate = DateTime.UtcNow
                        };

                        context.Users.Add(NewUser);
                        context.SaveChanges();
                        return token;
                    }
        }

Usage Example

Example #1
0
        public ActionResult RegisterUser(StudentTracker.Core.Entities.User objUser)
        {
            StudentContext db          = new StudentContext();
            var            tokenObject = db.RegistrationTokens.Where(t => t.Token == objUser.RegistrationToken).FirstOrDefault();

            objUser.OrganizationId = tokenObject.OrganizationId;
            objUser.MasterId       = tokenObject.CreatedBy;
            CodeFirstMembershipProvider membership = new CodeFirstMembershipProvider();
            var token = membership.CreateAccount(objUser);

            Roles.AddUserToRole(objUser.Username, Enum.GetName(typeof(UserRoles), tokenObject.RoleId));
            EmailHandler.Utilities.SendConfirmationEmail(objUser.Username);
            return(RedirectToAction("Confirmation", "Account"));
        }
All Usage Examples Of CodeFirstMembershipProvider::CreateAccount