【问题标题】:Blazor not correctly redirecting to controller on IISBlazor 未正确重定向到 IIS 上的控制器
【发布时间】:2021-01-06 09:32:25
【问题描述】:

我已经开始了一个 blazor-webassembly PWA 项目 (.net 5.0-rc1),托管在 asp.net 核心上,并且正在针对 3rd 方服务进行身份验证。
此登录流程基于 asp.net 核心身份。
流程如下:

  • 用户进入登录站点并选择提供商
  • 用户被重定向到控制器,加载提供者配置并将用户重定向到提供者
  • 用户使用提供者登录
  • 用户被重定向到回调,并登录系统,生成JWT
  • 用户被重定向到 PWA 以处理 JWT。

在本地开发时,上述流程可以正常工作。
但是,当部署到我的 webhotel 时,第 2 步被重定向到 Blazor 应用程序,而不是服务器上的控制器,从而导致“未找到”页面。

由于服务器托管应用程序,它们共享相同的基本 URL。
我已经尝试了常规链接 并使用 Navigationmanager.NagivateTo(url, forLoad: true);

导航

当显示“未找到”页面时,按 F5 将返回同一页面。但是,按 Ctrl+F5 会导致服务器端点被命中,并且流程的其余部分按预期工作。

【问题讨论】:

  • 在你按下Ctrl+F5的页面上,此时地址栏的Url是什么样子的?
  • 您是否将站点作为 iis 中的应用程序托管?你能分享示例链接代码吗?您可以尝试使用失败的请求跟踪来检查 404 错误详细信息。 docs.microsoft.com/en-us/iis/troubleshoot/…
  • @HenkHolterman URL 看起来与我在定位服务器时所期望的完全一样。可以比较Site上的URL,并与Swagger暴露的端点进行比较。
  • @JalpaPanchal 不幸的是,我无法访问主机的 IIS。链接可以在之前的评论中找到。
  • @MartinManø 你找到解决方案了吗?

标签: asp.net-core iis blazor blazor-webassembly


【解决方案1】:

问题在于 serviceworker,它捕获所有请求并将它们发送到 index.html。这个问题的答案可以在下面找到:URL Rewrite exceptions for Blazor WebAssembly Hosted deployment

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 2020-09-25
    • 2010-12-14
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多