小编RAA*_*ood的帖子

Blazor、.Net 8 和身份的全局交互问题

我一直在使用新的 .Net 8 Blazor 模板,并遇到了身份验证和设置全局 InteractiveServer 渲染模式的问题。我所做的更改是在 App.Razor 文件中更改为:

<Routes @rendermode="InteractiveServer" />
Run Code Online (Sandbox Code Playgroud)

我添加此内容的原因是因为我还尝试集成 MudBlazor,这是它正常运行所必需的(至少据我所知)。MS 确实通过文档列出了执行此操作的能力,因此似乎是设置此全局渲染模式的合理选择。

然后我面临的问题是使用 AccountLayout 组件的任何页面,例如登录、注册、重置密码等,因为它在这部分循环:

if (HttpContext is null)
{
    // If this code runs, we're currently rendering in interactive mode, so there is no HttpContext.
    // The identity pages need to set cookies, so they require an HttpContext. To achieve this we
    // must transition back from interactive mode to a server-rendered page.
    NavigationManager.Refresh(forceReload: true);
}
Run Code Online (Sandbox Code Playgroud)

由于它是全局设置的,因此它总是会被点击,因此会进入无限的导航循环。我尝试设置帐户布局和/或帐户页面以使用 null、默认、静态等渲染模式,但它们似乎不是有效的选项,我也找不到任何人这样做的示例。

所以我的问题是,有谁知道一种在渲染模式组件上设置默认/静态的方法,或者知道一种让 MudBlazor 在 .net 8 项目中工作而不使用全局交互模式的方法?我显然已经尝试使用 mudblazor 将渲染模式设置为在相关页面上进行交互。

identity blazor mudblazor .net-8.0

3
推荐指数
1
解决办法
1380
查看次数

标签 统计

.net-8.0 ×1

blazor ×1

identity ×1

mudblazor ×1