【问题标题】:Blazor WASM CheckSession LoopBlazor WASM CheckSession 循环
【发布时间】:2021-11-28 04:09:07
【问题描述】:

我们有一个新的 Blazor WASM 应用程序,它使用 Microsoft 提供的默认模板对 IdentityServer4 进行身份验证,并且一切正常,除了我不确定 CheckSession iframe 是否正常工作,因为它一直在无限循环中运行。

因此,据我了解,身份验证库会生成一个 CheckSession IFrame,然后创建另一个 iframe 来检查针对 IdentityServer 的会话,但这大约每秒都会执行此操作(甚至可能更少),我的理解是它应该这样做吗?但是我原以为有一种方法可以设置检查频率的间隔,但我似乎找不到。

iframe 生成:

<iframe src="http://localhost:5000/connect/checksession" style="visibility: hidden; position: absolute; display: none; width: 0px; height: 0px;"></iframe>

哪个实习生每秒生成另一个 iframe:

<iframe src="http://localhost:5000/connect/authorize?..." style="visibility: hidden; position: absolute; display: none; width: 0px; height: 0px;"></iframe>

其他 SPA 应用似乎可以设置 checkSessionInterval 属性,但我找不到 Blazor 的属性?

所以我的问题是:

  1. checkSession IFrame 是否应该如此频繁地检查(少于每秒)
  2. 有没有办法设置间隔?
  3. 有没有办法将其关闭并手动执行?

【问题讨论】:

  • 你找到解决循环的方法了吗?我在 blazor wasm 中也看到了相同的 1 秒 checksession iframe 循环。
  • @gilm0079 不,我们没有找到任何答案,并且真的只是接受了它,因为它正在做它应该做的事情并且无法更改配置。
  • 感谢您的回复。我在另一个使用 angular 的项目中遇到了类似的问题。它使用了 oidc-client-js 库。我想我能够在检查会话的那个库中设置一个间隔来减慢它。我会继续寻找是否可以对 blazor wasm auth 库执行相同的操作。

标签: c# .net blazor openid-connect webassembly


【解决方案1】:

看起来我能够让我的 WASM 项目稳定下来。不确定这是否会对您有所帮助,但我认为我遇到的主要问题是 blazor 是如何引导的。它可能试图在页面上运行两个 blazor wasm 实例。这可能导致身份验证相互争斗并创建循环。

我确实在页面上有一个用 render-mode 属性装饰的组件元素来引导 blazor,但是通过声明指向 div 的 App 根组件让 program.cs 引导 blazor 似乎效果更好将 Blazor 应用固定到的页面。

builder.RootComponents.Add<App>("#app");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2021-07-16
    • 1970-01-01
    • 2022-01-11
    • 2021-07-17
    • 2021-07-30
    • 2021-11-05
    相关资源
    最近更新 更多