예제 #1
0
        public virtual async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (_userManager.CheckIsUserBanned(model.UserName))
            {
                this.AddErrors("UserName", "حساب کاربری شما مسدود شده است");
                return(View(model));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var loggedinUser = await _userManager.FindAsync(model.UserName, model.Password);

            if (loggedinUser != null)
            {
                await _userManager.UpdateSecurityStampAsync(loggedinUser.Id);
            }

            var result = await _signInManager.PasswordSignInAsync
                             (model.UserName, model.Password, model.RememberMe, shouldLockout : true);

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

            case SignInStatus.LockedOut:
                this.AddErrors("UserName",
                               $"دقیقه دوباره امتحان کنید {_userManager.DefaultAccountLockoutTimeSpan} حساب شما قفل شد ! لطفا بعد از ");
                return(View(model));

            case SignInStatus.Failure:
                this.AddErrors("UserName", "نام کاربری یا کلمه عبور  صحیح نمی باشد");
                this.AddErrors("Password", "نام کاربری یا کلمه عبور  صحیح نمی باشد");
                return(View(model));

            default:
                this.AddErrors("UserName",
                               "در این لحظه امکان ورود به  سابت وجود ندارد . مراتب را با مسئولان سایت در میان بگذارید"
                               );
                return(View(model));
            }
        }