Beispiel #1
0
        public async Task <IActionResult> Register([FromBody] RegisterVModel model)
        {
            var user = new LiteForumUser {
                UserName = model.Username, Email = model.Email
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                _logger.LogInformation("User created a new account with password.");
                await _userManager.AddToRoleAsync(user, AppConstants.String.Roles.Member); // add user to default member role

                await _signInManager.SignInAsync(user, isPersistent : false);

                _logger.LogInformation("User created a new account with password.");
                return(Ok(new
                {
                    username = user.UserName,
                    email = user.Email,
                    status = "successfull"
                }));
            }
            ModelState.AddModelError("validation_error", result.Errors.FirstOrDefault().Description);
            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> Register([FromBody] RegisterVModel model, string returnUrl = null)
        {
            var user   = new ApplicationUser(model.Email);
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                user.FirstName = model.FirstName;
                user.LastName  = model.LastName;

                //var role = "Admin"; // model.RegisterAsDoctor ? "Doctor" : "Patient";
                var role          = model.RegisterAsDoctor ? "Doctor" : "Patient";
                var roleAddResult = await _userManager.AddToRoleAsync(user, role);

                if (roleAddResult.Succeeded)
                {
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    await _dataHub.NotifyClients(user, role, model.RegisterAsDoctor);

                    return(Ok());
                }
                else
                {
                    return(BadRequest(new ValidationError("Unexpected error", "Failed adding to such a role")));
                }
            }
            AddErrors(result);

            return(BadRequest(new ApiError(ModelState)));
        }
        // Post: /Users/Register
        public async Task <Object> Register(RegisterVModel registerVModel)
        {
            try
            {
                var user = new AppUser()
                {
                    UserName = registerVModel.Email,
                    Email    = registerVModel.Email
                };
                List <string> userRoles         = new List <string>(new string[] { "Member" });
                List <string> memberRoleOptions = new List <string>(new string[] { "Student", "Teacher", "Parent" });
                if (memberRoleOptions.Contains(registerVModel.MembershipTypeName))
                {
                    userRoles.Add(registerVModel.MembershipTypeName);
                }
                IdentityResult identityResult = await _userManager.CreateAsync(user, registerVModel.Password);

                if (identityResult.Succeeded)
                {
                    await _userManager.AddToRolesAsync(user, userRoles);

                    await _repo.PostMember(registerVModel);
                }
                return(Ok(identityResult));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static bool InsertUser(RegisterVModel userRegister)
        {
            using (var model = new fmDbDataModel())
            {
                try
                {
                    string hashedPassword = SecurityManager.CalculateHash(userRegister.Password);

                    fm_Users newUser = new fm_Users()
                    {
                        Name     = userRegister.Name,
                        Email    = userRegister.Email,
                        Password = hashedPassword,
                        Salt     = SecurityManager.GetSalt(), // later will be taken from database and fetched with new password to compare with the old one

                        InsertTime    = DateTime.Now,
                        AccountStatus = (int)AccountStatus.Active
                    };
                    // Adding the user to the currently connected database and now performing the same operation on the mirror ones.
                    model.fm_Users.Add(newUser);
                    model.SaveChanges();
                    DataOperationManager.Synch(new Func <RegisterVModel, bool>(InsertUser), new object[] { userRegister });

                    return(true);
                }
                catch (Exception e)
                {
                    DataOperationManager.VerifyResult(new Func <RegisterVModel, bool>(InsertUser), new object[] { userRegister }, MethodReturnStatus.Error);
                    _log.ErrorFormat("There was an error with inserting user to db. Message: {0}, Stacktrace: {1}", e.Message, e.StackTrace);
                    return(false);
                }
            }
        }
        public ActionResult Register()
        {
            Session["USER_ID"] = null;
            RegisterVModel UserRegister = new RegisterVModel();

            return(View());
        }
        public ActionResult Register(RegisterVModel UserRegister)
        {
            if (!ModelState.IsValid)
            {
                return(View(UserRegister));
            }

            if (!UserManager.InsertUser(UserRegister))
            {
                ModelState.AddModelError("", Resources.Resources.MessageForErrorRegister);
                return(View(UserRegister));
            }

            return(RedirectToAction("AccountActivation"));
        }
Beispiel #7
0
        public IActionResult Post([FromBody] RegisterVModel model)
        {
            var result = new ResultModel();

            return(this.Wrapper(ref result, () =>
            {
                var user = _userRepository.GetByEmail(model.email);
                if (user != null)
                {
                    result.ResultNo = -1;
                    result.Message = "该邮箱已经注册过账号";
                    return;
                }
                var key = $"VerificationCodel:Email:{model.email}";
                if ("3197" != model.verificationCode)
                {
                    result.ResultNo = -1;
                    result.Message = "验证码错误";
                    return;
                }
                var pwd = Md5Helper.GenerateMD5(model.password);
                var newUser = new HeyTom.Manage.Model.User()
                {
                    Email = model.email,
                    Icon = "",
                    Name = model.nickName,
                    Pwd = pwd,
                    Remark = "",
                    Status = 1,
                    CreateDate = DateTime.Now
                };
                result = _userRepository.Add(newUser);
                _userRoleRepository.Add(new HeyTom.Manage.Model.UserRole()
                {
                    RoleId = 4,
                    UserId = newUser.Id
                });
            }, true));
        }
Beispiel #8
0
        public async Task <Member> PostMember(RegisterVModel registerVModel)
        {
            Guid membershipTypeId = _context.MembershipTypes.Where(m => m.Name == registerVModel.MembershipTypeName)
                                    .Select(m => m.MembershipTypeId)
                                    .Single();
            Member member = new Member()
            {
                Address          = registerVModel.Address,
                BirthDate        = registerVModel.BirthDate,
                Email            = registerVModel.Email,
                FirstName        = registerVModel.FirsName,
                LastName         = registerVModel.LastName,
                Phone            = registerVModel.Phone,
                MemberId         = Guid.NewGuid(),
                MembershipTypeId = membershipTypeId
            };

            _dbset.Add(member);
            await _context.SaveChangesAsync();

            return(member);
        }