public override string CreateAccount(string userName, string password, bool requireConfirmationToken)
        {
            //if (String.IsNullOrEmpty(password))
            //    throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);
            string passwordHash = "";
            if(!string.IsNullOrEmpty(password))
                passwordHash  = Crypto.HashPassword(password);
            if (passwordHash.Length > 128)
                throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword);

            if (String.IsNullOrEmpty(userName))
                throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName);

            var user = (from u in userProfiles where u.UserName == userName select u).FirstOrDefault();
            if (user == null)
                throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError);
            if ((from m in memberships where m.UserId == user.UserId select m).Any())
                throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName);

            var token = requireConfirmationToken ? GenerateToken() : null;

            memberships.Add(new Webpages_Membership()
            {
                UserId = user.UserId,
                Password = passwordHash,
                CreateDate = DateTime.UtcNow,
                IsConfirmed = !requireConfirmationToken,
                PasswordFailuresSinceLastSuccess = 0,
                PasswordSalt = string.Empty,
                ConfirmationToken = token,
                PasswordChangedDate = DateTime.UtcNow
            });
            var root = Webpages_Roles.GetOrCreateRoot(db: dbContext);
            var role = root.GetSubRoleByName(ConfigurationManager.AppSettings["SelfRegisterUserRole"], dbContext);
            if (role != null)
            {
                Webpages_UsersInRoles ur = new Webpages_UsersInRoles()
                {
                    UserId = user.UserId,
                    RoleCode = role.Code
                };
                dbContext.WebPagesUsersInRoles.Add(ur);
            }
            try
            {

                dbContext.SaveChanges();
            }
            catch (Exception e)
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError.ToString(),e);
            }
            return token;
        }
Beispiel #2
0
 public ActionResult CreateUser(Webpages_UserProfile user, string roleCode)
 {
     using (TransactionScope ts = new TransactionScope())
     {
         if (db.UserProfiles.Where(o => o.UserName == user.UserName).Any())
         {
             return Content("User Exist");
         }
         db.UserProfiles.Add(user);
         db.SaveChanges();
         Webpages_UsersInRoles userRole = new Webpages_UsersInRoles()
         {
             RoleCode = roleCode,
             UserId = user.UserId
         };
         db.WebPagesUsersInRoles.Add(userRole);
         db.SaveChanges();
         ts.Complete();
         return Content(Boolean.TrueString);
     }
 }