как правильно использовать asp. net Core встроенную идентификацию для аутентификации? - PullRequest
0 голосов
/ 15 апреля 2020

Я только начал изучать Angular и использую Angular 8 для проекта. Когда я отлаживаю его с помощью debugger, я вижу, что имя пользователя и пароль идут туда правильно. Но это не собирается на login controller с использованием return this.http.post<any>(API_USERS_URL, { username, password});. Это одна проблема.

Другая проблема заключается в том, что этот login web api controller копируется и вставляется из встроенного удостоверения. Поскольку я использую тот же Signin Manager and User Manager, я подумал, что могу использовать его для аутентификации, создав свой собственный Login Controller. Это работает так?

Angular

     const API_USERS_URL = 'api/users';
    login(username: string, password: string): Observable<User> {
        debugger;
        return this.http.post<any>(API_USERS_URL, { username, password});
    }


Аутентификация

[HttpPost]
        [Route("api/users")]
        public async Task<IActionResult> Authenticate(string userName, string password)
        {

            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(userName, password, false, lockoutOnFailure: false);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User logged in.");

                }
                //if (result.RequiresTwoFactor)
                //{
                //    //return RedirectToPage("./LoginWith2fa", new { , RememberMe = Input.RememberMe });
                //}
                if (result.IsLockedOut)
                {
                    _logger.LogWarning("User account locked out.");
                    return RedirectToPage("./Lockout");
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return RedirectToPage("~/");
                }
            }

            // If we got this far, something failed, redisplay form
            return RedirectToPage("~/");
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...