Почему User.Identity.IsAuthenticated всегда ложно после получения токена для пользователя? - PullRequest
0 голосов
/ 03 ноября 2019

Я создал веб-API веб-приложения ASP.NET с отдельными учетными записями пользователей вместе с базовым веб-приложением ASP.NET MVC.

Приложение веб-API имеет контроллер учетных записей со всем необходимым встроенным кодом. для регистрации пользователей и получения токенов доступа.

Веб-приложение содержит действие для вызова веб-API и получения токена доступа для пользователя, пытающегося войти в систему.

Когда пользователь вводит свою электронную почту ипароль, действие вызывается успешно и возвращается ответное сообщение. На этом этапе User.Identity.IsAuthenticated по-прежнему имеет значение false, когда оно должно быть истинным.

Что я делаю неправильно или что еще мне нужно сделать, чтобы сделать User.Identity.IsAuthenticated истинным послеполучить токен?

        /// <summary>
    /// Action is used to authenticate the user and get an access token
    /// </summary>
    /// <param name="email">The given email address</param>
    /// <param name="password">The given password</param>
    /// <returns></returns>
    public async Task<IActionResult> Authenticate(string email, string password)
    {
        if (ModelState.IsValid)
        {

            var data = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string, string>("grant_type", "password"),
                new KeyValuePair<string, string>("username", email),
                new KeyValuePair<string, string>("password", password)
            });

            using (HttpResponseMessage responseMessage = await _httpClient.PostAsync("/Token", data))
            {
                if (responseMessage.IsSuccessStatusCode)
                {
                    bool i = User.Identity.IsAuthenticated; // this is always false! WHY?
                    /*
                     * DO MORE STUFF AFTERWARDS.
                     */ 
                }

                else
                    throw new Exception(responseMessage.ReasonPhrase);

            }


            return RedirectToAction("Index", "Home");
        }
        else
        {
            return View();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...