コード例 #1
0
        public IActionResult SignIn(SignInViewModel viewModel)
        {
            var result = ProcessViewModel(
                viewModel,
                async vm =>
            {
                var validationResult = new ValidationResult <SignInViewModel>();

                try
                {
                    var principal = authentication.SignIn(vm.Username, vm.Password);
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);
                }
                catch (DeactivatedException)
                {
                    validationResult.AddError(
                        x => x.Username,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:Deactivated"));

                    ModelState.AddValidationResult(validationResult);

                    throw;
                }
                catch (Exception)
                {
                    validationResult.AddError(
                        x => x.Username,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin"));

                    validationResult.AddError(
                        x => x.Password,
                        translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin"));

                    ModelState.AddValidationResult(validationResult);

                    throw;
                }
            },
                () => RedirectToAction("Index", "Dashboard"),
                () =>
            {
                var reloader = GetReloader <SignInViewModel>();
                return(View("SignIn", reloader.Reload(viewModel)));
            });

            return(result.Result);
        }
コード例 #2
0
        public async Task <AuthUser> SignInAsync(SignInModel signInModel)
        {
            var authUser = await _authenticationClient.SignIn <AuthUser>(signInModel);

            return(authUser);
        }