【问题标题】:Session management in Angular and ASP.NETAngular 和 ASP.NET 中的会话管理
【发布时间】:2021-11-29 22:49:45
【问题描述】:

所以我正在尝试学习如何使用会话来存储有关已登录用户的信息。我的后端使用 .net core,前端使用 Angular,我有两个主要问题

1> 因此,当我使用HttpContext.Session.SetString("key", "value"); 创建会话变量时,它会自动将会话 ID 存储在浏览器中,还是我需要手动执行?以及如何确保会话 ID 与请求一起进入?

2> 如何从中间件访问会话 ID 以使用它来获取特定用户的信息?例如,如果某些页面只有管理员可以访问,并且会话需要显示用户是管理员,我将如何在中间件中实现它?

我尝试在 google 上进行搜索,但它提供的只是 JWT,但我想在它上面使用会话。对不起菜鸟问题。任何帮助表示赞赏。

【问题讨论】:

    标签: angular asp.net-core authentication session middleware


    【解决方案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");```
      

      【讨论】:

      • 如何从我的自定义中间件访问该会话?
      猜你喜欢
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 2015-02-12
      相关资源
      最近更新 更多