public async Task <bool> RegisterUserAsync(RegisterUserInfo user)
        {
            // context
            DynamoDBContext context = new DynamoDBContext(_dynamoDBClient);

            // save
            var hash = GenerateSaltedHash(Encoding.UTF8.GetBytes(user.Password), Encoding.UTF8.GetBytes(user.Username));

            if (user.ContainerUser)
            {
                await context.SaveAsync(new ContainerUser
                {
                    UserId   = Guid.NewGuid().ToString("N"),
                    Email    = user.Email,
                    Username = user.Username,
                    Password = Convert.ToBase64String(hash)
                });
            }
            else
            {
                await context.SaveAsync(new DashboardUser
                {
                    UserId   = Guid.NewGuid().ToString("N"),
                    Email    = user.Email,
                    Username = user.Username,
                    Password = Convert.ToBase64String(hash)
                });
            }

            // dispose context
            context.Dispose();

            return(true);
        }
        public async Task <IActionResult> RegisterUser(RegisterUserInfo userInfo)
        {
            userInfo.EmailActiveCode = Generator.GenerateGuid();
            var result = await _mediator.Send(userInfo);


            switch (result)
            {
            case RegisterUserResult.EmailExists:
                return(Error(new { info = "Email Exists" }));

            case RegisterUserResult.Success:
            {
                #region Send Activation Email

                string body = await _viewRenderService.RenderToStringAsync("Emails/_activateAccount", userInfo);

                SendEmail.Send(userInfo.Email, "ایمیل فعالسازی", body,
                               _configuration["MailSender:Smtp"],
                               _configuration["MailSender:Email"],
                               _configuration["MailSender:title"],
                               int.Parse(_configuration["MailSender:port"]),
                               _configuration["MailSender:Password"]);

                #endregion
                return(Success(userInfo));
            }
            }



            return(Error(new { info = "error" }));
        }
示例#3
0
        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="userDto"></param>
        /// <param name="serviceProvider"></param>
        /// <returns></returns>
        public ReplyModel Register(RegisterUserInfo userDto, IServiceProvider serviceProvider)
        {
            ReplyModel reply = new ReplyModel();

            if (userDto.Password == userDto.RepeatPassword)
            {
                Expression <Func <Users, bool> > func = w => w.UserName == userDto.UserName;
                Users user = Users.Get(_userRepository, func);
                if (user == null)
                {
                    Users.Register(_userRepository, userDto.UserName, userDto.Email, userDto.Password, userDto.NickName, userDto.Tel);
                    bool result = serviceProvider.GetService <IUnitOfWork>().Commit();
                    if (result)
                    {
                        reply.Status = "002";
                        reply.Msg    = "注册成功";
                    }
                    else
                    {
                        reply.Msg = "注册失败";
                    }
                }
                else
                {
                    reply.Msg = "用户名或邮箱已存在";
                }
            }
            else
            {
                reply.Msg = "确认密码与输入密码不一致";
            }
            return(reply);
        }
示例#4
0
        public async Task <RegisterUserResult> DoRegister(RegisterUserInfo request)
        {
            try
            {
                var lastSendTime = (DateTime.UtcNow - _lastTime).TotalSeconds;
                if (lastSendTime <= 90)
                {
                    throw new Exception(
                              $"You need to wait at least 90 seconds before to try again! Last try was {lastSendTime} seconds ago.");
                }

                var result = await _dataExchange.DoDataExchange <RegisterUserResult, RegisterUserInfo>(request, CmdName);

                if (result.Result)
                {
                    _lastTime = DateTime.UtcNow;
                }

                return(result);
            }
            catch (Exception e)
            {
                return(new RegisterUserResult(false, e.Message));
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            RegisterUserInfo registerUserInfo = db.RegisterUserInfoes.Find(id);

            db.RegisterUserInfoes.Remove(registerUserInfo);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#6
0
        public void MessageReceive(UserToken token, MSGModel message)
        {
            RegisterUserInfo userInfo = message.GetMessage <RegisterUserInfo>();

            ExecutePool.Instance.execute(delegate()
            {
                int res = Register(userInfo);
                write(token, res);
            });
        }
 public ActionResult Edit([Bind(Include = "Id,UserName,Password")] RegisterUserInfo registerUserInfo)
 {
     if (ModelState.IsValid)
     {
         db.Entry(registerUserInfo).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(registerUserInfo));
 }
示例#8
0
        public async Task <RegisterUserResult> DoRegister(RegisterUserInfo request)
        {
            try
            {
                if (!Misc.IsValideEmailAdress(request.Mail))
                {
                    throw new Exception("Invalid eMail!");
                }

                if (!Misc.IsValideUserName(request.UserName))
                {
                    throw new Exception(
                              "Invalid User Name, only letters and digits allowed, minimum length is 3 char and maximum length is 15 char!");
                }

                if (request.Password.Length < 8 || request.Password.Length > 32)
                {
                    throw new Exception("Password minimum length is 8 char,  maximum length is 32 char!");
                }

                if (!Misc.IsValidePassword(request.Password))
                {
                    throw new Exception("Invalid password, character ' and \" are not allowed!");
                }

                if (request.VerifyKey.Length != 32)
                {
                    throw new Exception("Invalid Verify Key!");
                }

                var lastSendTime = (DateTime.UtcNow - _lastTime).TotalSeconds;
                if (lastSendTime <= 90)
                {
                    throw new Exception(
                              $"You need to wait at least 90 seconds before to try again! Last try was {lastSendTime} seconds ago.");
                }

                dynamic requestInfo = request;

                var result = await DataExchange.DoDataExchange((object)requestInfo);

                RegisterUserResult retVal = result.ToObject <RegisterUserResult>();

                if (retVal.Result)
                {
                    _lastTime = DateTime.UtcNow;
                }

                return(retVal);
            }
            catch (Exception e)
            {
                return(new RegisterUserResult(false, e.Message));
            }
        }
        public ActionResult Create([Bind(Include = "Id,UserName,Password")] RegisterUserInfo registerUserInfo)
        {
            if (ModelState.IsValid)
            {
                db.RegisterUserInfoes.Add(registerUserInfo);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(registerUserInfo));
        }
示例#10
0
        public async Task <RegisterUserResult> Handle(RegisterUserInfo request, CancellationToken cancellationToken, RequestHandlerDelegate <RegisterUserResult> next)
        {
            if (await _query.IsEmailExists(request.Email.Trim().ToLower()))
            {
                Log.ForContext("Message", request)
                .ForContext("Error", "EmailIsExist").Error($"Error: ** {request}");

                return(RegisterUserResult.EmailExists);
            }

            return(await next());
        }
示例#11
0
        public void addUser(RegisterUserInfo registerInfo)
        {
            UserData userData = new UserData();

            userData.id         = index++;
            userData.exp        = 0;
            userData.level      = 1;
            userData.nickname   = registerInfo.Nickname;
            userData.totalCount = 0;
            userData.winCount   = 0;

            addUser(registerInfo.Username, userData);
        }
示例#12
0
        /// <summary>
        /// 创建员工
        /// </summary>
        /// <returns></returns>
        public int CreateStaff(RegisterUserInfo info, int operatorId = 0)
        {
            var args = new StaffCreateArgs
            {
                TenantId = info.TenantId,
                Origin   = (int)RegisterOriginState.WeChat,
                Staff    = new Staff
                {
                    Email        = info.Email,
                    Name         = info.Name,
                    Mobile       = info.Mobile,
                    WorkPhone    = info.WorkPhone,
                    Position     = info.Position,
                    Hobbies      = info.DepartmentName,
                    EmployedDate = DateTime.Now
                },
                Account = new Account
                {
                    UserName      = info.RegisterType == 1 ? null : info.Email,
                    Password      = info.Password,
                    BindingMobile = info.RegisterType == 1 ? info.Mobile : null
                },
                OperatorId = 0
            };
            var options = StaffCreateOptions.CreateAccountAndActivate;

            options.IgnoreOperator     = operatorId == 0;
            options.UseVirtualUserName = info.RegisterType == 1;
            try
            {
                var provider = Beisen.UserFramework.Service.StaffService.Instance;
                //   var provider = PlatformServiceFactory<UserFramework.ESB.ServiceInterface.IStaffProvider>.Instance();
                if (provider == null)
                {
                    AppConnectLogHelper.Error(new ESBServiceNotFoundException("UserFramework ESB Service Is null"));
                    return(0);
                }

                var result = provider.CreateStaff(args, options);
                if (!result.Ok)
                {
                    throw new UserOperateException(string.Format("Message:{0}", result.Error.Message));
                }
                return(result.State);
            }
            catch (System.Exception ex)
            {
                AppConnectLogHelper.Error(ex.Message, new UserOperateException("创建员工失败,接口:StaffService.Instance.CreateStaff", ex));
                return(0);
            }
        }
        // GET: Admin/RegisterUserInfoes/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RegisterUserInfo registerUserInfo = db.RegisterUserInfoes.Find(id);

            if (registerUserInfo == null)
            {
                return(HttpNotFound());
            }
            return(View(registerUserInfo));
        }
示例#14
0
        public async Task <ResultModel> Register(RegisterUserInfo userDto)
        {
            var user = MiCakeApp.User.Create(userDto.Act, userDto.Pwd, userDto.Avatar, userDto.Gender);
            await _userRepo.AddAsync(user);

            var token = _jwtSupporter.CreateToken(user);

            var userRes = new LoginResultDto()
            {
                AccessToken = token, HasUser = true, UserInfo = user.Adapt <UserDto>()
            };

            return(new ResultModel(0, "", userRes));
        }
        /// <summary>
        /// 验证是否可以注册用户
        /// </summary>
        /// <param name="info"></param>
        /// <param name="code"></param>
        /// <param name="codeType"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        private static bool Validate(RegisterUserInfo info, int code, int codeType, out string message)
        {
            message = string.Empty;

            if (string.IsNullOrWhiteSpace(info.Password) || info.Password.Length < 6)
            {
                message = "参数错误";
                return(false);
            }

            var checkEmail = ProviderGateway.StaffProvider.CheckUserNameExist(info.Mobile);

            if (checkEmail)
            {
                message = "该手机号已注册";
                return(false);
            }

            var checkResult =
                ProviderGateway.MobileVerificationProvider.CheckCode(info.Mobile,
                                                                     code, codeType);

            if (!checkResult)
            {
                message = "验证码错误";
                return(false);
            }

            var user =
                ProviderGateway.StaffProvider.GetByUserName(info.RegisterType == 0
                    ? info.Email
                    : info.Mobile);

            if (user != null && user.Count > 0)
            {
                message = string.Format("用户{0}已存在", info.Mobile);
                return(false);
            }

            var tenant = BeisenUserGateway.BeisenTenantProvider.GetTenantById(info.TenantId);

            if (tenant == null)
            {
                message = string.Format("租户{0}不存在", info.TenantId);
                return(false);
            }

            return(true);
        }
示例#16
0
        public static bool AddNewAccount(RegisterUserInfo userInfo)
        {
            SqlConnection con = WOSDB.GetConection();
            SqlCommand    cmd = new SqlCommand("ADD_ACCOUNT", con);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@username", userInfo.Username);
            cmd.Parameters.AddWithValue("@password", userInfo.Password);
            cmd.Parameters.AddWithValue("@nickname", userInfo.Nickname);
            int          res       = -1;
            SqlParameter parOutput = cmd.Parameters.AddWithValue("@errorcode", res);

            parOutput.Direction = System.Data.ParameterDirection.Output;
            cmd.ExecuteNonQuery();
            res = int.Parse(parOutput.Value.ToString());
            return(res == 0);
        }
示例#17
0
        private int Register(RegisterUserInfo userInfo)
        {
            if (userInfo.Username == null ||
                userInfo.Password == null ||
                userInfo.Nickname == null ||
                userInfo.Username.Equals("") ||
                userInfo.Password.Equals("") ||
                userInfo.Nickname.Equals("") ||
                cacheInstance.HasAccount(userInfo.Username))
            {
                return(Protocol.COMMAND_REGISTER_FAIL);
            }

            //写入数据库
            AccountTable.AddNewAccount(userInfo);
            cacheInstance.Add(userInfo.Username, userInfo.Password);
            userCacheInstance.addUser(userInfo);
            return(Protocol.COMMAND_REGISTER_SUCCESS);
        }
示例#18
0
        public ActionResult UserRegistration(UserRegistration reg, RegisterUserInfo ui)
        {
            var usr = db.RegisterUserInfoes.Where(a => a.UserName.Equals(reg.UserName) && a.Password.Equals(reg.Password)).FirstOrDefault();

            if (usr != null)
            {
                return(RedirectToAction("Index", "Home", new { @area = "" }));
            }

            else
            {
                ui.Id        = reg.Id;
                ui.UserName  = reg.UserName;
                reg.Password = Convert.ToBase64String(System.Text.ASCIIEncoding
                                                      .ASCII.GetBytes(reg.Password));
                ui.Password = reg.Password;
                db.RegisterUserInfoes.Add(ui);
                db.SaveChanges();
            }
            return(View());
        }
示例#19
0
    public async Task <ActionResult <UserResponse> > Register([FromBody] RegisterUserInfo userInfo)
    {
        var zxcvbnResult = Zxcvbn.Core.EvaluatePassword(userInfo.Password);

        if (zxcvbnResult.Score < 3)
        {
            return(UnprocessableEntity("Password is too weak"));
        }

        var user = new User(
            UserName: userInfo.Username,
            Email: userInfo.Email
            );
        var userCreationResult = await userManager.CreateAsync(user, userInfo.Password);

        if (!userCreationResult.Succeeded)
        {
            return(UnprocessableEntity(userCreationResult.Errors.First()));
        }
        return(Created("", user));
    }
示例#20
0
 public JsonResult Register([FromBody] RegisterUserInfo userDto)
 {
     return(Json(_userService.Register(userDto, ServiceProvider)));
 }
示例#21
0
 public async Task <ActionResult <bool> > Register([FromBody] RegisterUserInfo user)
 {
     return(await _dynamoDBService.RegisterUserAsync(user));
 }