public ActionResult Login(RegisterAndLoginViewModel Loginuser)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var _user = userService.Find(Loginuser.UserViewModel.UserName);

                    if (_user != null && Loginuser.UserViewModel.Password == _user.Password)
                    {
                        Session.Add("user", _user);
                        Session["userName"] = _user.DisplayName;
                        return(RedirectToAction("Index", "Book"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "用户名或者密码不匹配!");
                    }
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(typeof(UserController), e);
                throw e;
            }
            return(View("LoginAndRegister", Loginuser));
        }
        public async Task <ActionResult> Login(RegisterAndLoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = await SignInManager.PasswordSignInAsync(model.Login.Email, model.Login.Password, model.Login.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                return(RedirectToLocal(returnUrl));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.Login.RememberMe }));

            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
        public async Task <ActionResult> Register(RegisterAndLoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new TwitterUser {
                    UserName = model.Register.Email, Email = model.Register.Email, EmailConfirmed = true, Name = model.Register.FirstName, Surname = model.Register.LastName
                };
                var result = await UserManager.CreateAsync(user, model.Register.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    if (!Directory.Exists(Server.MapPath(string.Format("~/Content/img/Uploads/ProfileOriginalSize/{0}", user.Email))))
                    {
                        Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/img/Uploads/ProfileOriginalSize/{0}", user.Email)));
                        Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/img/Uploads/ProfileSmallSize/{0}", user.Email)));
                        Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/img/Uploads/ProfileMediumSize/{0}", user.Email)));
                        Directory.CreateDirectory(Server.MapPath(string.Format("~/Content/img/Uploads/CoverBigSize/{0}", user.Email)));
                    }

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            return(View("Login", model));
        }
 public ActionResult Register(RegisterAndLoginViewModel userViewModel)
 {
     try
     {
         User user = new User()
         {
             UserName     = userViewModel.RegisterViewModel.UserName,
             Password     = userViewModel.RegisterViewModel.Password,
             DisplayName  = userViewModel.RegisterViewModel.DisplayName,
             EmailAddress = userViewModel.RegisterViewModel.EmailAddress
         };
         if (ModelState.IsValid)
         {
             if (userService.Exist(user.UserName))
             {
                 ModelState.AddModelError("UserName", "用户名已存在!");
                 return(View("LoginAndRegister", userViewModel));
             }
             else if (user != null)
             {
                 db.users.Add(user);
                 db.SaveChanges();
                 return(RedirectToAction("Login"));
             }
             else
             {
                 ModelState.AddModelError("", "error");
                 return(View("LoginAndRegister", userViewModel));
             }
         }
     }
     catch (Exception e)
     {
         LogHelper.WriteLog(typeof(UserController), e);
         throw e;
     }
     return(View(userViewModel));
 }
 public ChatRegister()
 {
     DataContext = new RegisterAndLoginViewModel();
     InitializeComponent();
 }
Beispiel #6
0
        public async Task <IActionResult> RegisterAndLogin([FromBody] RegisterAndLoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                var user = await _userManager.FindByNameAsync(model.dod_id);

                if (user != null)
                {
                    var result = await _signInManager.PasswordSignInAsync(model.dod_id, model.password, model.remember_me, lockoutOnFailure : false);

                    if (result.Succeeded)
                    {
                        _logger.LogInformation("User logged in.");
                        return(Json(new Result()));
                    }
                    if (result.IsLockedOut)
                    {
                        _logger.LogWarning("User account locked out.");
                        return(Json(new Result("Locked Out", "User is locked out.", 401)));
                    }
                    else
                    {
                        return(Json(new Result("Failure", "Invalid Login Attempt", 401)));
                    }
                }
                else
                {
                    //Register user
                    user = new ApplicationUser {
                        UserName = model.dod_id.ToString(), Email = model.email
                    };
                    var result = await _userManager.CreateAsync(user, model.password);

                    if (result.Succeeded)
                    {
                        _logger.LogInformation("User created a new account with password.");

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                        await _emailSender.SendEmailConfirmationAsync(model.email, callbackUrl);

                        //Each user is a marine
                        await _userManager.AddToRoleAsync(user, ApplicationPermissions.ROLE_MARINE);

                        //if (Token != null) // Verify which other roles the user is in
                        //{
                        //    if (Token.TokenData == ApplicationPermissions.ROLE_SUPERVISOR)
                        //    {
                        //        await _userManager.AddToRoleAsync(user, ApplicationPermissions.ROLE_SUPERVISOR);
                        //    }
                        //    if (Token.TokenData == ApplicationPermissions.ROLE_DOD_ADMIN)
                        //    {
                        //        await _userManager.AddToRoleAsync(user, ApplicationPermissions.ROLE_SUPERVISOR);
                        //        await _userManager.AddToRoleAsync(user, ApplicationPermissions.ROLE_DOD_ADMIN);
                        //    }
                        //}

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

                        return(Json(new Result()));
                    }
                    else
                    {
                        string result_error = "";
                        result.Errors.Select(e => e.Description).ToList().ForEach(e => result_error += e + "; ");
                        return(Json(new Result("Failure", $"User Could Not Be Created: {result_error}", 406)));
                    }
                }
            }
            // If we got this far, something failed
            return(Json(new Result("Failure", "Invalid Login Attempt Or Invliad JSON model.", 401)));
        }