#angular #asp.net-core #authentication #session #middleware
Вопрос:
Поэтому я пытаюсь узнать, как использовать сеансы для хранения информации о зарегистрированных пользователях. Я использую .net core для своего бэкенда и Angular для своего интерфейса, и у меня есть 2 основных вопроса
1> Итак, когда я создаю переменную сеанса с помощью > HttpContext.Session.SetString("key", "value");
будет ли она автоматически сохранять идентификатор сеанса в браузере или это нужно сделать вручную? И как мне убедиться, что идентификатор сеанса поступает вместе с запросом ?
2> Как мне получить доступ к идентификатору сеанса из промежуточного программного обеспечения, чтобы использовать его для получения информации об этом конкретном пользователе? Например, если есть определенные страницы, к которым может получить доступ только администратор, и сеанс должен показать, что пользователь является администратором, как бы я реализовал это в промежуточном программном обеспечении?
Я попытался поискать в Google, но все, что пришло в голову, — это JWT, но я хотел бы использовать сеансы поверх него. Извините за вопросы нуба. Любая помощь будет признательна.
Ответ №1:
При использовании кода HttpContext.Session.SetString("key", "value");
сеанс будет создан и связан с браузером, вам не потребуется никаких других действий.
Вы можете получить доступ к сеансу через HttpContext, который будет введен в класс запуска и доступен через конструктор следующим образом public async Task InvokeAsync(HttpContext context)
И в классе запуска вы можете добавить следующий код services.AddHttpContextAccessor()
, который поможет вам внедрить контекст HTTP в промежуточные программы.
Ответ №2:
используя следующий код, вы можете установить сеанс и локальное хранилище в angular
localStorage.set("id",2);
sessionStorage.set("id",2);
используя следующий код, вы можете получить сеанс и локальное хранилище в angular
localStorage.get("id")
sessionStorage.get("id");```
Комментарии:
1. как я получу доступ к этому сеансу из своего пользовательского промежуточного программного обеспечения?