public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            var args = new ValidatePasswordEventArgs(username, password, true);
            OnValidatingPassword(args);

            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }

            if (RequiresUniqueEmail && GetUserNameByEmail(email) != string.Empty)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            var user = GetUser(username, true);

            if (user == null)
            {
                var userObj = new User { UserName = username, Password = GetMd5Hash(password), UserEmailAddress = email };

                using (var usersContext = new UsersContext())
                {
                    usersContext.AddUser(userObj);
                }

                status = MembershipCreateStatus.Success;

                return GetUser(username, true);
            }
            status = MembershipCreateStatus.DuplicateUserName;

            return null;
        }
Exemplo n.º 2
0
 private User AddUser(User user)
 {
     if (UserExists(user))
         throw new ArgumentException(TooManyUser);
     return entities.Users.Add(user);
 }
Exemplo n.º 3
0
        public void CreateUser(string username, string name, string password, string email, string roleName)
        {
            Role role = GetRole(roleName);
            if (string.IsNullOrEmpty(username.Trim()))
                throw new ArgumentException("The user name provided is invalid. Please check the value and try again.");
            if (string.IsNullOrEmpty(name.Trim()))
                throw new ArgumentException("The name provided is invalid. Please check the value and try again.");
            if (string.IsNullOrEmpty(password.Trim()))
                throw new ArgumentException("The password provided is invalid. Please enter a valid password value.");
            if (string.IsNullOrEmpty(email.Trim()))
                throw new ArgumentException("The e-mail address provided is invalid. Please check the value and try again.");
            if (!RoleExists(role))
                throw new ArgumentException("The role selected for this user does not exist! Contact an administrator!");
            if (this.entities.Users.Any(user => user.UserName == username))
                throw new ArgumentException("Username already exists. Please enter a different user name.");

            User newUser = new User()
            {
                UserName = username,
                Name = name,
                Password = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "md5"),
                Email = email,
                RoleId = role.RoleId
            };

            try
            {
                AddUser(newUser);
            }

            catch (ArgumentException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new ArgumentException("The authentication provider returned an error. Please verify your entry and try again. If the problem persists,please contact your system administrator.");
            }

            // Immediately persist the user data
            Save();
        }
Exemplo n.º 4
0
 public bool UserExists(User user)
 {
     if (user == null) return false;
     return (entities.Users.SingleOrDefault(u => u.UserID == user.UserID || u.UserName == user.UserName) != null);
 }
Exemplo n.º 5
0
 public Role GetRoleForUser(User user)
 {
     if (!UserExists(user))
         throw new ArgumentException(MissingUser);
     return user.Role;
 }
Exemplo n.º 6
0
 public User DeleteUser(User user)
 {
     if (!UserExists(user)) throw new ArgumentException(MissingUser);
     return entities.Users.Remove(user);
 }
Exemplo n.º 7
0
 // Helper methods. User can also directly access "Users" property
 public void AddUser(User user)
 {
     Users.Add(user);
     SaveChanges();
 }
Exemplo n.º 8
0
        public void CreateUser(string username, string name, string password, string email, string roleName)
        {
            Role role = GetRole(roleName);
            if (string.IsNullOrEmpty(username.Trim()))
                throw new ArgumentException("用户名不完整,请重新输入.");
            if (string.IsNullOrEmpty(name.Trim()))
                throw new ArgumentException("昵称不完整,请重新输入.");
            if (string.IsNullOrEmpty(password.Trim()))
                throw new ArgumentException("密码不完整,请重新输入.");
            if (string.IsNullOrEmpty(email.Trim()))
                throw new ArgumentException("邮箱地址不完整,请检查后重试.");
            if (!RoleExists(role))
                throw new ArgumentException("角色不存在,请联系管理员!");
            if (this.entities.Users.Any(user => user.UserName == username))
                throw new ArgumentException("用户名已经存在,请选择另外的名字.");
            User newUser = new User()
            {
                UserName = username,
                Name = name,
                Password = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "md5"),
                Email = email,
                RoleId = role.RoleId
            };

            try
            {
                AddUser(newUser);
            }

            catch (ArgumentException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new ArgumentException("The authentication provider returned an error. Please verify your entry and try again. If the problem persists,please contact your system administrator.");
            }

            // Immediately persist the user data
            this.Save();
        }