【问题标题】:Blazor - Server Side - Cookie AuthenticationBlazor - 服务器端 - Cookie 身份验证
【发布时间】:2021-04-23 08:45:44
【问题描述】:

我想在 Blazor 服务器端实现身份验证,使用 cookie 身份验证,我检查了很多示例项目,但都是使用 Microsoft.Identity。

【问题讨论】:

  • 使用身份是最简单的方法。您可以根据需要对其进行自定义,例如,如果您使用自定义表格作为用户详细信息和密码,您可以更改身份以使用这些表格并手动验证用户身份。但是,如果您可以使用 Identity 并将您的用户帐户替换为 Identity Aspnet Users 表,您还将获得许多内置功能,例如密码重置、帐户确认、存储声明等。
  • @Umair 您能否建议一个指向资源的链接,他们解释如何进行您提到的身份自定义?特别是自定义表格定制。谢谢。

标签: authentication blazor server-side


【解决方案1】:

cookie auth 和服务器端 Blazor 的问题在于,服务器端 Blazor 用来与服务器通信的 Web 套接字在 cookie 过期后很长时间仍将保持打开和连接状态。可能有一种方法可以定期结束/刷新此 websocket,但我没有研究它。

如果您实际使用 Blazor WebAssembly,则必须实现自己的 AuthenticationStateProvider 来管理您的登录/注销。

您还需要实现 /user/keepalive 端点,以便在用户导航时保持其 cookie 处于活动状态。请参阅 Blazor 的 NavigationManager.LocationChanged

还有一个 /user/me 端点来检测 cookie 是否仍然有效,并在用户按 F5 时加载任何权限。没有什么比登录、按 F5 并不得不重新登录更烦人的了。

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2021-02-27
    • 2020-02-27
    • 2021-07-24
    • 2022-12-28
    相关资源
    最近更新 更多