【发布时间】:2021-04-30 19:04:07
【问题描述】:
刷新页面后保持用户身份验证状态的正确且安全的方法是什么?
到目前为止,我创建了一个自定义 AuthenticationStateProvider,它从浏览器存储中读取状态并且工作正常,但是我遇到了许多意见,认为将敏感数据保存在那里是不安全的,在我的情况下是 ID、名称、用户的姓氏、角色和时间戳(以通过ASP.NET Core Protected Browser Storage 保存的加密JSON 的形式)。
我已经阅读了许多其他可能性,但似乎没有一个是正确的:
- Cookie - 在服务器端 Blazor(Razor 组件)中,只能在初始 Http 请求上创建/读取 cookie,如果用户随后登录,则无法工作
-
CircuitHandler- 刷新后建立了全新的电路,因此所有会话信息都丢失了 - 将当前会话链接到用户的 IP - 在大多数情况下,刷新后它保持不变,但它也不安全且不够可靠
那么我在这里缺少什么让它正常工作?服务器端 Blazor 还有其他可能性吗?
【问题讨论】:
标签: authentication cookies storage blazor blazor-server-side