【发布时间】:2025-12-27 16:15:05
【问题描述】:
我正在将旧的 ASP.NET Web 窗体项目迁移到 ASP.NET Core Web API 和前端 Angular。在我的旧应用程序中存储用户信息实例及其值(如分配的组、权限和其他用户信息)。我将使用 JWT 我无法将所有信息存储在 JWT 中,所以我应该在我的 asp.net 中继续会话核心应用程序或在每个请求中从数据库中检索此信息?
现代应用程序开发中是否还有其他最佳实践?
【问题讨论】:
-
Session and State Management 文档已经解释了这一点。除非您有一个非常小的 Web 应用程序,否则无论如何您都将使用多个服务器,因此您必须使用由数据库支持的 distributed session storage
-
@PanagiotisKanavos 感谢您的评论。我已阅读文档。我有将近 5000 个用户我将使用 JWT 进行身份验证,但是在当前系统中,我在会话中存储权限和其他用户相关信息我应该删除会话并在每个增加数据库调用的请求中从数据库中检索此信息
-
另一方面,roles 不是会话状态,它们是authorization properties。它们的存储由授权中间件处理,而不是会话管理。如果您使用声明身份验证,则只有声明应该进入 JWT,而不是整个用户配置文件
标签: c# asp.net asp.net-core asp.net-core-webapi asp.net5