Exemplo n.º 1
0
        /// <summary>
        /// 注册用户
        /// </summary>
        /// <param name="request">注册用户的请求</param>
        /// <returns></returns>
        public override async Task <RpcResult <RegisterRsp> > RegisterAsync(RegisterReq request)
        {
            var res = new RpcResult <RegisterRsp>();
            var rsp = new RegisterRsp();

            bool isvalid = ValidateRegisterInfo(request, out string errorMsg);

            if (!isvalid)
            {
                res.Code = ErrorCodes.PARAMS_VALIDATION_FAIL;
                res.Data.ReturnMessage = errorMsg;
                return(res);
            }

            var user = new UserInfo();

            user.Account    = request.Account;
            user.FullName   = request.FullName;
            user.Password   = CryptographyManager.Md5Encrypt(user.Account + request.Password);
            user.IsAdmin    = false;
            user.UpdateTime = DateTime.Now;
            user.CreateTime = DateTime.Now;
            var userId = await this._userRepo.InsertAsync(user);

            rsp.UserId = (int)userId;

            return(res);
        }
Exemplo n.º 2
0
        //调用委托
        private async Task <AmpMessage> ProcessRegisterAsync(AmpMessage req)
        {
            RegisterReq request = null;

            if (req.Data == null)
            {
                request = new RegisterReq();
            }
            else
            {
                request = RegisterReq.Parser.ParseFrom(req.Data);
            }

            req.FriendlyServiceName = "UserGateService.Register";

            var result = await RegisterAsync(request);

            var response = AmpMessage.CreateResponseMessage(req.ServiceId, req.MessageId);

            response.FriendlyServiceName = "UserGateService.Register";
            response.Code = result.Code;
            if (result.Data != null)
            {
                response.Data = result.Data.ToByteArray();
            }
            return(response);
        }
Exemplo n.º 3
0
        public void Register(global::System.UInt64 hostId, global::System.String hostName)
        {
            var toHostId = Global.IdManager.GetHostIdByActorId(this.toActorId, this.isClient);

            if (this.FromHostId == toHostId)
            {
                var protoCode = OpCode.REGISTER_REQ;
                if (protoCode < OpCode.CALL_ACTOR_METHOD)
                {
                    var peer    = Global.NetManager.GetPeerById(this.FromHostId, this.NetType);
                    var context = new RpcContext(null, peer);
                    Global.Host.CallMethodWithParams(protoCode, new object[] { hostId, hostName, context });
                }
                else
                {
                    Global.Host.GetActor(this.toActorId).CallMethodWithParams(protoCode, new object[] { hostId, hostName });
                }
                return;
            }
            Task.Run(() => {
                var msg = new RegisterReq()
                {
                    hostId   = hostId,
                    hostName = hostName
                };
                this.CallRemoteMethod(OpCode.REGISTER_REQ, msg, null);
            });
        }
Exemplo n.º 4
0
        //同步方法
        public RpcResult <RegisterRsp> Register(RegisterReq req)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20003, 1);

            message.FriendlyServiceName = "UserService.Register";


            message.Data = req.ToByteArray();
            var response = base.CallInvoker.BlockingCall(message);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <RegisterRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new RegisterRsp();
            }
            else
            {
                result.Data = RegisterRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
Exemplo n.º 5
0
        public void RegisterToEvent(RegisterReq req)
        {
            /*This is bound to be common validation for a lot of RESTful requests.
             * I would much rather it be in a custom filter if I had the time*/
            if (ctx.Events.Any(e => e.Name == req.EventName))
            {
                req.IsError = true;
                req.Error   = "This event does not exist";
            }

            //far less common validation so give it to a service
            service.ValidateRegister(ref req);

            if (req.IsError)
            {
                throw new Exception(req.Error);
            }
            else
            {
                try
                {
                    ctx.BeginTransaction();
                    ctx.Events.FirstOrDefault(e => e.Name == req.EventName &&
                                              e.Location.Country.CountryCode == req.Country)
                    .RegisteredEmails.Add(req.EmailAddress);
                    ctx.SetModified(ctx.Events);
                    ctx.CommitTransaction();
                }
                catch
                {
                    ctx.RollbackTransaction();
                }
            }
        }
 public object Register([FromBody] RegisterReq Req)
 {
     try
     {
         if (Req.Username == null || Req.Password == null)
         {
             return(ErrorResult(2, "Username or Password is null"));
         }
         var IsExist = DB.Accounts.Where(u => u.Username == Req.Username).Count() > 0;
         if (IsExist)
         {
             return(ErrorResult(1, "Username is duplicate"));
         }
         Account NewAccount = new Account()
         {
             Username    = Req.Username,
             Password    = MD5(Req.Password),
             Name        = Req.Name,
             Gender      = Req.Gender,
             Type        = Req.Type,
             AccessToken = Guid.NewGuid().ToString("N"),
             ExpireDate  = DateTime.Now.AddDays(60),
             Birthday    = Req.Birthday,
             Avatar      = Req.Avatar,
             Phone       = Req.Phone
         };
         DB.Accounts.InsertOnSubmit(NewAccount);
         DB.SubmitChanges();
         return(SuccessResult(null));
     }
     catch (Exception ex)
     {
         return(FailResult(ex));
     }
 }
Exemplo n.º 7
0
        public async Task <IActionResult> Register([FromBody] RegisterReq model)
        {
            var userExists = await _userManager.FindByNameAsync(model.Username);

            if (userExists != null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new LoginRes {
                    Status = "Error", Message = "User already exists!"
                }));
            }

            ApplicationUser user = new ApplicationUser()
            {
                //Email = model.Email,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = model.Username,
                SellerId      = model.SellerId
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new LoginRes {
                    Status = "Error", Message = result.ToString()
                }));                                                                                                                          //"User creation failed! Please check user details and try again." });
            }
            return(Ok(new LoginRes {
                Status = "Success", Message = "User created successfully!"
            }));
        }
Exemplo n.º 8
0
        public async Task <RpcResult <RegisterRsp> > RegisterAsync(RegisterReq req, int timeOut = 3000)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20003, 1);

            message.FriendlyServiceName = "UserService.Register";
            message.Data = req.ToByteArray();
            var response = await base.CallInvoker.AsyncCall(message, timeOut);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <RegisterRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new RegisterRsp();
            }
            else
            {
                result.Data = RegisterRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
Exemplo n.º 9
0
    public override void Execute(INotification notification)
    {
        int     mainproto = int.Parse(notification.Name);
        CmdType type      = (CmdType)Enum.Parse(typeof(CmdType), notification.Type);

        if (type == CmdType.Request)
        {
            Message message = notification.Body as Message;
            Notify  notify  = new Notify();
            notify.Protocol = mainproto;
            switch (mainproto)
            {
            case Protocol.Login:
                LoginReq loginReq = ReferencePool.Require <LoginReq>();
                loginReq.Account  = message.args[0].ToString();
                loginReq.Password = message.args[1].ToString();
                notify.message    = loginReq.ToByteArray();
                NetworkManager.SendRequest(notify);
                break;

            case Protocol.Regist:
                RegisterReq registerReq = ReferencePool.Require <RegisterReq>();
                registerReq.Account  = message.args[0].ToString();
                registerReq.Password = message.args[1].ToString();
                notify.message       = registerReq.ToByteArray();
                NetworkManager.SendRequest(notify);
                break;
            }
        }
    }
Exemplo n.º 10
0
        public async Task <IActionResult> Register(RegisterReq model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (_userDbContext.Users.Any(x => x.Email == model.Email))
            {
                return(StatusCode(StatusCodes.Status409Conflict));
            }

            var confirmationToken = GenerateToken();

            _userDbContext.Users.Add(new User
            {
                Email            = model.Email,
                Name             = model.Name,
                PasswordHash     = model.Password.Hash(),
                State            = UserState.EmailConfirmation,
                ConirmationToken = confirmationToken
            });

            await _userDbContext.SaveChangesAsync();

            await _mailService.SendEmailConfirmation(model.Email, confirmationToken);

            return(Ok());
        }
Exemplo n.º 11
0
    private void OnRegister()
    {
        RegisterReq req = new RegisterReq();

        req.account = account;
        req.passwd  = password;
        NetLogic.RequestNet(eProtocalCommand.REGISTER_CMD, req);
    }
Exemplo n.º 12
0
        private bool IsAlreadyRegistered(RegisterReq req)
        {
            string emailAddress = req.EmailAddress;

            return(repo.GetAllEvents()
                   .FirstOrDefault(e => e.Name == req.EventName && e.Location.Country.CountryCode == req.Country).RegisteredEmails
                   .Any(em => em == emailAddress));
        }
Exemplo n.º 13
0
    public void SendMsg_Register(string username, string password)
    {
        RegisterReq req = new RegisterReq()
        {
            username = username, password = Util.Md5Sum(password)
        };

        Globals.Instance.SendMsg <RegisterReq>(Consts_CommandId.C2S_Register, req);
    }
Exemplo n.º 14
0
        //[ProducesResponseType(typeof(UserReply), 200)]
        public IActionResult Signup([FromBody] RegisterReq register)
        {
            try
            {
                if (!ValidateHelper.IsEmailFormat(register.Email))
                {
                    return(Json(new JsonResultModel(ReturnCode.ParameterError, "Email format is not correct.")));
                }
                if (register.Password == "")
                {
                    return(Json(new JsonResultModel(ReturnCode.ParameterError, "Password should not blank.")));
                }
                if (register.DeviceId == "")
                {
                    return(Json(new JsonResultModel(ReturnCode.ParameterError, "Device id should not blank.")));
                }

                if (IsEnableInviteCode())
                {
                    register.EnableCode = true;
                    if (register.InviteCode == "")
                    {
                        return(Json(new JsonResultModel(ReturnCode.ParameterError, "Miss invite code parameter cannot complete register.")));
                    }
                }

                var     reply = Client.Signup(register);
                JObject data  = new JObject();
                data["Id"]        = reply.Id;
                data["Email"]     = reply.Email;
                data["Activated"] = reply.Activated.ToString();
                data["RegistIp"]  = reply.RegistIp;
                data["DeviceId"]  = reply.DeviceId;

                var factor = FactorClient.QueryFactor(new FactorReq()
                {
                    UserId = reply.Id, Type = FactorType.EmailAuthType
                });

                //发送邮件
                string emailMessage;
                bool   send = EmailEvent.RegisterEmail(reply.Email, reply.Id, factor.Code, out emailMessage);
                if (!send)
                {
                    return(Json(new JsonResultModel(ReturnCode.MessageError, $"Email send failed: {emailMessage}")));
                }

                return(Json(new JsonResultModel(ReturnCode.Success, "User register successful.", reply)));
            }
            catch (RpcException ex)
            {
                return(Json(new JsonResultModel(ReturnCode.SubmitError, ex.Status.Detail)));
            }
        }
Exemplo n.º 15
0
        public void IsAlreadyRegistered()
        {
            //Arrange
            Mock <IEventRegRepo> mock = new Mock <IEventRegRepo>();

            mock.Setup(m => m.GetAllEvents()).Returns(new List <Event>
            {
                new Event
                {
                    Name             = "Testing Market",
                    UkStartTime      = new DateTime(2017, 5, 1, 12, 30, 0),
                    UkEndTime        = new DateTime(2017, 5, 1, 18, 0, 0),
                    RegisteredEmails = new List <string> {
                        "*****@*****.**"
                    },
                    Location = new Location
                    {
                        City    = "London",
                        Country = new Country
                        {
                            Name        = "United Kingdom",
                            CountryCode = "UK"
                        },
                        LocationTimezone = new LocationTimezone
                        {
                            Id   = "UK",
                            Name = "GMT Standard Time"
                        }
                    }
                }
            });

            RegisterReq req = new RegisterReq
            {
                EventName        = "Testing Market",
                Country          = "UK",
                ArrivalTime      = new DateTime(2017, 5, 1, 11, 0, 0),
                RegistrationDate = new DateTime(2017, 04, 30, 23, 18, 0),
                FirstName        = "Adam",
                LastName         = "Stevens",
                EmailAddress     = "*****@*****.**"
            };

            //Act
            EventRegService service = new EventRegService(mock.Object);

            service.ValidateRegister(ref req);

            //Assert
            Assert.IsTrue(req.IsError);
            Assert.IsTrue(req.Error.Length > 0);
        }
Exemplo n.º 16
0
    public void ModifyPassword(string pwdMd5, string npwdMd5, WorkDone cb = null)
    {
        RegisterReq regReq = new RegisterReq();

        regReq.Version = 2;
        regReq.Args.Add(pwdMd5);
        regReq.Args.Add(npwdMd5);

        m_net.SendEnqueue(Constants.Lion_ModPass,
                          0,
                          regReq,
                          cb);
    }
Exemplo n.º 17
0
    public void Register()
    {
        //限制逻辑


        RegisterReq req = new RegisterReq();

        req.username = username.text;
        req.password = password.text;
        req.deviceID = SystemInfo.deviceUniqueIdentifier;//设备ID
        req.channel  = "UC";
        MobaNetwork.Send((ushort)MessageId.ERegisterReq, req);
    }
Exemplo n.º 18
0
    public void RegisterByEmail(string email, string pwdMd5, WorkDone cb = null)
    {
        RegisterReq regReq = new RegisterReq();

        regReq.Version = 2;
        regReq.Args.Add(email);
        regReq.Args.Add(pwdMd5);

        m_net.SendEnqueue(Constants.Lion_Register,
                          0,
                          regReq,
                          cb);
    }
        public ActionResult <CommonRes> PostResigter([FromBody] RegisterReq user)
        {
            User addUser = new User()
            {
                MyId     = user.MyId,
                NickName = user.NickName,
                PassWord = user.PassWord,
                RegDate  = DateTime.Now
            };

            _service.AddObj(addUser);
            _service.UpdateDB();
            return(Ok(new CommonRes()));
        }
Exemplo n.º 20
0
        public void OnClickRegisterButton()
        {
            RegisterReq req = new RegisterReq
            {
                userId       = _inputId.text,
                userName     = _inputName.text,
                userPassword = _inputPassword.text,
            };

            _userID       = req.userId;
            _userPassword = req.userPassword;
            NetworkManager.GetInstance().SendPacket <RegisterReq>(ENetworkMessage.REGISTER_REQ, req);
            _buttonRegister.interactable = false;
        }
Exemplo n.º 21
0
        public async Task <IActionResult> Register([FromBody] RegisterReq registerModel)
        {
            if (ModelState.IsValid)
            {
                //1. Check if user already exists
                if (!await _registerService.CheckIfUserExistsAsync(registerModel.UserName))
                {
                    //2. Check if password is strong enough
                    if (PasswordStrength.CheckPasswordComplexity(registerModel.PassWord) &&
                        registerModel.UserName.EndsWith("@consid.se"))
                    {
                        //3. Create new identity user
                        var user = await _registerService.RegisterNewUserAsync(registerModel);

                        if (user != null)
                        {
                            //Send confirmationlink to email address
                            //var token = await _registerService.GenerateEmailTokenAsync(user);
                            //var link = Url.Action(action: "ConfirmEmail", controller: "Register",
                            //  new { userId = user.Id, token = token }, Request.Scheme);
                            //await _registerService.SendEmailConfirmationAsync(user, link);

                            //Write confirmationlink to file in MyPictures
                            //var filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
                            //System.IO.File.WriteAllText(Path.Combine(filePath, $"ConfirmEmail---{user.Id}.txt"), link);

                            return(Created("", new Response {
                                Success = true
                            }));
                        }
                    }

                    return(BadRequest(new Response
                    {
                        Success = false, ErrorMessage = "Password not strong enough or invalid email-address"
                    }));
                }

                return(BadRequest(new Response
                {
                    Success = false, ErrorMessage = "A user with the submitted email-address already exists"
                }));
            }

            return(BadRequest(new Response
            {
                Success = false, ErrorMessage = "Both email and password must be submitted"
            }));
        }
Exemplo n.º 22
0
        public async override Task <RegisterRes> Register(RegisterReq request, ServerCallContext context)
        {
            GSUser user = mapper.Map <GSUser>(request);

            user.NickName  = user.Name;
            user.LoginTime = user.CreateTime = DateTime.Now;
            user.LoginPwd  = Md5Help.Md5Hash(user.LoginPwd + configuration["PwdHashSuffix"]);

            var key = await queryContext.AddAndGetKeyAsync(user);

            return(new RegisterRes()
            {
                ID = key, IsSuccess = true
            });
        }
Exemplo n.º 23
0
 public void ValidateRegister(ref RegisterReq req)
 {
     //validate event email not already there
     if (IsAlreadyRegistered(req))
     {
         req.IsError = true;
         req.Error   = "The email entered has already been registered to this event";
     }
     //validate arrival is on time
     if (IsTooLate(req))
     {
         req.IsError = true;
         req.Error   = "The arrival time booked is after the event finishes";
     }
 }
        public async Task <IActionResult> Register([FromForm] RegisterReq req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var res = await _userSvc.Register(req);

            if (!res)
            {
                return(BadRequest("Register is unsuccessful"));
            }
            return(Ok());
        }
Exemplo n.º 25
0
 public virtual ActionResult Register(RegisterReq mod)
 {
     lock (lockhelper)
     {
         if (string.IsNullOrEmpty(mod.phone))
         {
             return(ResultUtils.Error("手机号码不能为空"));
         }
         else if (!Utils.IsValidMobile(mod.phone))
         {
             return(ResultUtils.Error("手机号码格式有误"));
         }
         if (string.IsNullOrEmpty(mod.code))
         {
             return(ResultUtils.Error("验证码不能为空"));
         }
         else if (mod.code.Trim().Length != 6)
         {
             return(ResultUtils.Error("验证码有误"));
         }
         else
         {
         }
         if (string.IsNullOrEmpty(mod.username))
         {
             mod.username = mod.phone;
         }
         if (string.IsNullOrEmpty(mod.password))
         {
             return(ResultUtils.Error("密码不能为空"));
         }
         userid = NH.Service.Api.AuthService.GetInstance().Regieste(mod);
         if (userid > 0)
         {
             Entity.Model.Token token = base.GetToken();
             return(ResultUtils.Success(new
             {
                 userId = token.UserID,
                 timeStamp = token.Timestamp,
                 platform = token.Platform,
                 token = token.TokenStr
             }));
         }
         return(ResultUtils.Fail("注册失败"));
     }
 }
Exemplo n.º 26
0
        public async Task <bool> Register(RegisterReq req)
        {
            var user = new AppUser()
            {
                UserName    = req.UserName,
                FirstName   = req.FirstName,
                LastName    = req.LastName,
                PhoneNumber = req.PhoneNumber,
                Email       = req.Email
            };
            var res = await _userManager.CreateAsync(user, req.Password);

            if (res.Succeeded)
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 27
0
        public HttpResponseMessage Register(RegisterReq req)
        {
            string phone = req.phone;
            string vCode = req.verificationCode;
            var    pwd   = req.password;

            var users = UserInfoOper.Instance.GetByPhone(phone);

            if (users.Count != 0)
            {
                return(ControllerHelper.Instance.JsonResult(500, "该手机号已注册"));
            }
            else
            {
                var code = CacheHelper.GetUserVerificationCode(phone);
                if (code == null)//缓存中没有这个手机的验证码了,正式时保留5分钟
                {
                    return(ControllerHelper.Instance.JsonResult(500, "请重新发送验证码"));
                }
                else if (code != vCode)
                {
                    return(ControllerHelper.Instance.JsonResult(500, "验证码错误"));
                }
                else
                {//可以注册了
                    UserInfo userHere = new UserInfo();
                    userHere.userPhone = phone;
                    userHere.userPwd   = MD5Helper.Instance.StrToMD5(pwd);
                    userHere.userHead  = "";
                    var id = UserInfoOper.Instance.Add(userHere);

                    userHere.id       = id;
                    userHere.userName = "";
                    //userHere.birthday = null;
                    Token token = CacheHelper.SetUserToken(userHere);
                    //userHere.Token = token.GetToken();
                    UserRes userRes = new UserRes(userHere, apiHost, token.GetToken());
                    return(ControllerHelper.Instance.JsonResult(200, JsonConvert.SerializeObject(userRes), ""));
                    //var str = JsonHelper.JsonPlus(true, JsonConvert.SerializeObject(userRes), "");
                    //return ControllerHelper.Instance.JsonResult(str);
                    //目前是返回了新的user记录了,移动端要什么再改-txy
                }
            }
        }
Exemplo n.º 28
0
        private bool IsTooLate(RegisterReq req)
        {
            /*This is assuming that the times are held in the database at Uk time always.
             * It also assumes that the frontend code will be display local time always.
             * local time for frontend would be given from server... if i had time to do that api endpoint
             * for a GET registration page... I would pass it a converted local time for the event they're picking.
             */

            string eventName    = req.EventName;
            string timeZoneName = repo.GetAllEvents()
                                  .FirstOrDefault(e => e.Name == req.EventName && e.Location.Country.CountryCode == req.Country)
                                  .Location.LocationTimezone.Name;

            DateTime ukEndTime = repo.GetAllEvents()
                                 .FirstOrDefault(e => e.Name == req.EventName)
                                 .UkEndTime;

            DateTime localEndTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(ukEndTime, timeZoneName);

            return(req.ArrivalTime > localEndTime);
        }
Exemplo n.º 29
0
        private bool ValidateRegisterInfo(RegisterReq req, out string error)
        {
            error = "";

            if (string.IsNullOrEmpty(req.Account))
            {
                error = "账号不能为空";
                return(false);
            }

            if (string.IsNullOrEmpty(req.Password))
            {
                error = "密码不能为空";
                return(false);
            }
            if (string.IsNullOrEmpty(req.FullName))
            {
                error = "用户名称不能为空";
                return(false);
            }

            if (!Validator.IsStringLength(req.FullName, 1, 16))
            {
                error = "用户名称太长了";
                return(false);
            }

            if (!Validator.IsValidAccount(req.Account))
            {
                error = "账号格式不合法:字母开头,允许5-16字节,允许字母数字下划线";
                return(false);
            }
            if (!Validator.IsValidPassword(req.Password))
            {
                error = "密码必须在6-18位之间";
                return(false);
            }

            return(true);
        }
Exemplo n.º 30
0
        public async Task <IdentityUser> RegisterNewUserAsync(RegisterReq newModel)
        {
            try
            {
                var newUser = new IdentityUser {
                    UserName = newModel.UserName, Email = newModel.UserName
                };

                //Remove and activate email confirmation in RegisterController once in production
                newUser.EmailConfirmed = true;

                await _userManager.CreateAsync(newUser);

                await _userManager.AddPasswordAsync(newUser, newModel.PassWord);

                await _profileDataService.CreateNewProfileAsync((await _userManager.FindByNameAsync(newUser.UserName)).Id);

                return(await _userManager.FindByNameAsync(newModel.UserName));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }