Итак, я пытаюсь научиться использовать сеансы для хранения информации о вошедших в систему пользователях. Я использую ядро ​​.net для своего внутреннего интерфейса и Angular для внешнего интерфейса, и у меня есть 2 основных вопроса

1> Итак, когда я создаю переменную сеанса с помощью HttpContext.Session.SetString("key", "value");, будет ли она автоматически сохранять идентификатор сеанса в браузере или мне нужно это делать вручную? И как мне убедиться, что идентификатор сеанса входит с запросом?

2> Как мне получить доступ к идентификатору сеанса из промежуточного программного обеспечения, чтобы использовать его для получения информации об этом конкретном пользователе? Например, если есть определенные страницы, доступ к которым может получить только администратор, и сеанс должен показать, что пользователь является администратором, как я могу реализовать это в промежуточном программном обеспечении?

Я попытался выполнить поиск в Google, но все, что он нашел, - это JWT, но я хотел бы использовать сеансы поверх него. Извините за вопросы новичков. Любая помощь приветствуется.

0
Prithvi Emmanuel Machado 11 Окт 2021 в 09:32

2 ответа

Лучший ответ

При использовании кода HttpContext.Session.SetString("key", "value"); сеанс будет создан и связан с браузером, вам не потребуется никаких других действий.

Вы можете получить доступ к сеансу через HttpContext, который будет введен в класс запуска и доступен через конструктор, подобный этому public async Task InvokeAsync(HttpContext context)

А в классе запуска вы можете добавить следующий код services.AddHttpContextAccessor(), который поможет вам внедрить контекст HTTP в промежуточное ПО.

0
Anuraj 11 Окт 2021 в 08:36

Используя следующий код, вы можете установить сеанс и локальное хранилище в angular

localStorage.set("id",2);
sessionStorage.set("id",2);

Используя следующий код, вы можете получить сеанс и локальное хранилище в angular

localStorage.get("id")
sessionStorage.get("id");```
0
dhiraj thakare 11 Окт 2021 в 06:38