Example #1
0
        public async Task <ActionResult> BeginRegister(StartRegisterViewModel viewModel)
        {
            bool isUserRegistered = await _membershipService.IsUserRegistered(viewModel.UserName);

            if (isUserRegistered)
            {
                ModelState.AddModelError("CustomError", "User is already registered.");
                return(View("Register", viewModel));
            }

            if (!string.IsNullOrWhiteSpace(viewModel.Password) &&
                !string.IsNullOrWhiteSpace(viewModel.UserName) &&
                viewModel.Password.Equals(viewModel.ConfirmPassword))
            {
                try
                {
                    bool result = await _membershipService.SaveNewUser(viewModel.UserName, viewModel.Password, viewModel.Email);

                    if (!result)
                    {
                        throw new Exception("Failed to create user");
                    }

                    ServerRegisterResponse serverRegisterResponse = await _membershipService.GenerateServerChallenge(viewModel.UserName);

                    CompleteRegisterViewModel registerModel = new CompleteRegisterViewModel
                    {
                        UserName  = viewModel.UserName,
                        AppId     = serverRegisterResponse.AppId,
                        Challenge = serverRegisterResponse.Challenge,
                        Version   = serverRegisterResponse.Version
                    };

                    return(View("FinishRegister", registerModel));
                }
                catch (Exception e)
                {
                    _logger.LogError(e.Message);
                    ModelState.AddModelError("CustomError", e.Message);

                    return(View("Register", viewModel));
                }
            }

            ModelState.AddModelError("CustomError", "invalid input");
            return(View("Register", viewModel));
        }
Example #2
0
        public JsonResult GetChallenge()
        {
            ServerRegisterResponse serverRegisterResponse = _memeberShipService.GenerateServerChallenge(HttpContext.User.Identity.Name);
            CompleteRegisterModel  registerModel          = new CompleteRegisterModel
            {
                UserName  = HttpContext.User.Identity.Name,
                AppId     = serverRegisterResponse.AppId,
                Challenge = serverRegisterResponse.Challenge,
                Version   = serverRegisterResponse.Version
            };

            JsonResult result = new JsonResult
            {
                Data = registerModel
            };

            return(result);
        }
Example #3
0
        public JsonResult GetChallenge(string username)
        {
            ServerRegisterResponse serverRegisterResponse = _memeberShipService.GenerateServerChallenge(username);
            CompleteRegisterModel  registerModel          = new CompleteRegisterModel
            {
                UserName  = username,
                AppId     = serverRegisterResponse.AppId,
                Challenge = serverRegisterResponse.Challenge,
                Version   = serverRegisterResponse.Version
            };

            JsonResult result = new JsonResult
            {
                Data = registerModel
            };

            return(result);
        }
Example #4
0
        public ActionResult BeginRegister([FromBody] RegisterModel value)
        {
            if (!string.IsNullOrWhiteSpace(value.Password) &&
                !string.IsNullOrWhiteSpace(value.UserName) &&
                value.Password.Equals(value.ConfirmPassword))
            {
                ServerRegisterResponse serverRegisterResponse = _memeberShipService.GenerateServerRegistration(value.UserName.Trim(), value.Password.Trim());
                CompleteRegisterModel  registerModel          = new CompleteRegisterModel
                {
                    UserName  = value.UserName,
                    AppId     = serverRegisterResponse.AppId,
                    Challenge = serverRegisterResponse.Challenge,
                    Version   = serverRegisterResponse.Version
                };

                return(View("FinishRegister", registerModel));
            }

            ModelState.AddModelError("CustomError", "invalid input");
            return(View("Register"));
        }
Example #5
0
        public ActionResult BeginRegister([FromBody] RegisterModel value)
        {
            if (_memeberShipService.IsUserRegistered(value.UserName))
            {
                ModelState.AddModelError("CustomError", "User is already registered.");
                return(View("Register", value));
            }

            if (!string.IsNullOrWhiteSpace(value.Password) &&
                !string.IsNullOrWhiteSpace(value.UserName) &&
                value.Password.Equals(value.ConfirmPassword))
            {
                try
                {
                    _memeberShipService.SaveNewUser(value.UserName, value.Password);
                    ServerRegisterResponse serverRegisterResponse = _memeberShipService.GenerateServerChallenge(value.UserName.Trim());
                    CompleteRegisterModel  registerModel          = new CompleteRegisterModel
                    {
                        UserName  = value.UserName,
                        AppId     = serverRegisterResponse.AppId,
                        Challenge = serverRegisterResponse.Challenge,
                        Version   = serverRegisterResponse.Version
                    };

                    return(View("FinishRegister", registerModel));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    ModelState.AddModelError("CustomError", e.Message);

                    return(View("Register", value));
                }
            }

            ModelState.AddModelError("CustomError", "invalid input");
            return(View("Register", value));
        }