コード例 #1
0
        public IHttpActionResult Register(string appid, string name, string email, string pwd, string confirm)
        {
            if (!ClientAppBll.Any(a => a.AppId.Equals(appid)))
            {
                return(ResultData(null, false, "应用不存在!"));
            }
            if (String.IsNullOrEmpty(name.Trim()))
            {
                return(ResultData(null, false, "用户名不能为空"));
            }

            if (!email.MatchEmail())
            {
                return(ResultData(null, false, "邮箱格式不正确!"));
            }

            if (pwd.Length <= 6)
            {
                return(ResultData(null, false, "密码过短,至少需要6个字符!"));
            }

            if (!pwd.Equals(confirm))
            {
                return(ResultData(null, false, "两次输入的密码不一致!"));
            }

            if (UserInfoBll.UsernameExist(name))
            {
                return(ResultData(null, message: $"用户名【{name}】已经存在!"));
            }

            if (UserInfoBll.EmailExist(email))
            {
                return(ResultData(null, message: $"邮箱【{email}】已经存在!"));
            }
            var regex = new Regex(@"(?=.*[0-9])                     #必须包含数字
                                            (?=.*[a-zA-Z])                  #必须包含小写或大写字母
                                            (?=([\x21-\x7e]+)[^a-zA-Z0-9])  #必须包含特殊符号
                                            .{6,30}                         #至少6个字符,最多30个字符
                                            ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);

            if (regex.Match(pwd).Success)
            {
                UserInfoDto user = UserInfoBll.Register(new UserInfo()
                {
                    Username = name, Password = pwd, Email = email
                });
                if (user != null)
                {
                    ClientApp app = ClientAppBll.GetFirstEntity(a => a.AppId.Equals(appid));
                    if (app.Available)
                    {
                        app.UserInfo.Add(UserInfoBll.GetById(user.Id));
                        bool b = ClientAppBll.UpdateEntitySaved(app);
                        return(ResultData(user, true, b ? "用户注册成功!" : "用户注册成功,但尚未分配到指定的应用子系统,请联系管理员!"));
                    }
                    return(ResultData(user, false, $"用户注册成功,但由于【{app.AppName}】网站当前服务不可用,而无法登陆,请联系管理员!"));
                }

                return(ResultData(null, false, "用户注册失败!"));
            }

            return(ResultData(null, false, "密码强度值不够,密码必须包含数字,必须包含小写或大写字母,必须包含至少一个特殊符号,至少6个字符,最多30个字符!"));
        }