ASP.NET Core MVC, использующий API с токенами JWT. User.Identity.IsAuthenticated возвращает falseC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core MVC, использующий API с токенами JWT. User.Identity.IsAuthenticated возвращает false

Сообщение Anonymous »


Я создал API с использованием .NET 7. Этот API использует токены JWT и имеет контроллер, который отвечает за регистрацию и вход пользователей. В Swagger это работает отлично.

Это мой API AuthController:

с использованием Microsoft.AspNetCore.Authentication; использование Microsoft.AspNetCore.Http; использование Microsoft.AspNetCore.Identity; использование Microsoft.AspNetCore.Mvc; использование WildlifeLogAPI.Models.DTO; использование WildlifeLogAPI.Репозитории; пространство имен WildlifeLogAPI.Controllers { [Маршрут("api/[контроллер]")] [Апиконтроллер] общедоступный класс AuthController: ControllerBase { частный UserManager только для чтения; частный только для чтения ITokenRepository tokenRepository; public AuthController (UserManager userManager, ITokenRepository tokenRepository) { this.userManager = userManager; this.tokenRepository = tokenRepository; } //POST: API/Аутентификация/Регистрация [HttpPost] [Маршрут("Регистрация")] public async Task Register([FromBody] RegisterRequestDto RegisterRequestDto) { // создаем новый экземпляр IdentityUser (который включает в себя имя пользователя и адрес электронной почты, которые они отправляют) varidentityUser = новый IdentityUser { Имя пользователя = RegisterRequestDto.Имя пользователя, Электронная почта = RegisterRequestDto.Email }; // затем используем встроенный CreateAsync userManager (передаем только что созданного нами идентификатора и пароль, переданный в dto) варidentResult = ждут userManager.CreateAsync(identityUser, RegisterRequestDto.Password); // Добавляем роли пользователю // проверяем, успешно ли создан пользователь если (identityResult.Успешно) { // Добавляем роль пользователя по умолчанию при регистрации вар roleIdentityResult = ждут userManager.AddToRoleAsync(identityUser, «Пользователь»); // проверяем, успешно ли добавлена ​​роль пользователя, если да, то выводим сообщение если (roleIdentityResult.Succeeded) { return Ok("Пользователь зарегистрирован. Пожалуйста, войдите."); } } // если это не удалось return BadRequest("что-то пошло не так. Повторите попытку. "); } //POST: API/аутентификация/логин [HttpPost] [Маршрут("Войти")] общедоступная асинхронная задача Login ([FromBody] LoginRequestDto loginRequestDto) { // получаем пользователя по электронной почте и сохраняем его в переменной пользователя вар пользователь = ждут userManager.FindByEmailAsync(loginRequestDto.Email); // проверяем, связано ли письмо с пользователем // если он заполнен и мы находим его в базе данных, то выполняем код, необходимый для входа в систему если (пользователь != ноль) { // проверяем, что пароль соответствует адресу электронной почты, используя встроенный CheckPasswordAsync // передаем адрес электронной почты и пароль вар checkPasswordResult = ждут userManager.CheckPasswordAsync(пользователь, loginRequestDto.Password); // если пароль соответствует адресу электронной почты, то создаем токен если (checkPasswordResult) { // Здесь создаем токен // Получаем роли для этого пользователя вар роли = ждут userManager.GetRolesAsync(пользователь); // если есть роли, создаем токен если (роли!= ноль) { // создаем токен JWT var jwtToken = tokenRepository.CreateJWTToken(пользователь, роли.ToList()); // это наш токен // помещаем этот токен в dto вар ответ = новый LoginResponseDto { jwtToken = jwtToken }; вернуть ОК (ответ); } } } return BadRequest("Имя пользователя или пароль неверны"); } } } Затем я создал приложение ASP.NET Core MVC с контроллером под названием AuthsController, который использует этот API и обрабатывает токен JWT.

с использованием Microsoft.AspNetCore.Authentication; использование Microsoft.AspNetCore.Identity; использование Microsoft.AspNetCore.Mvc; использование System.Net.Http.Headers; использование System.Security.Claims; использование System.Text; используя System.Text.Json; использование WildlifeLog.UI.Models.DTO; использование WildlifeLog.UI.Models.ViewModels; использование WildlifeLogAPI.Models.DTO; пространство имен WildlifeLog.UI.Controllers { публичный класс AuthsController: Контроллер { частный только для чтения IHttpClientFactory httpClientFactory; частный только для чтения IHttpContextAccessor httpContextAccessor; частный SignInManager только для чтения; частный регистратор ILogger WildlifeLog.UI
  • Home
  • Парки Ваши журналы
  • Пользователи
  • Конфиденциальность
@if (User.Identity.IsAuthenticated) { @Пользователь?.Идентификация?.Имя } еще { IsAuthenticated: @User.Identity.IsAuthenticated

Пользователь не вошел в систему
Зарегистрироваться Войти } @RenderBody() &копировать; 2023 - WildlifeLog.UI - Конфиденциальность @await RenderSectionAsync("Скрипты", обязательно: false)
Итак, User.Identity.IsAuthenticated возвращает false, хотя я вошел в систему и могу получить доступ к контроллерам, доступ к которым могут получить только вошедшие в систему пользователи. Что я делаю не так?
р>
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • User.Identity.IsAuthenticated имеет значение false в методах, не связанных с аутентификацией, после успешного входа в си
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • User.Identity.IsAuthenticated всегда ложь в пользовательской аутентификации ядра .net.
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Несколько личностей в претензии с isauthenticated = false в jwt
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»