经过Identityserver身份验证后,重定向到我的应用程序后,它给出
异常:相关性失败。 未知位置
现在,因为我正在使用SPA。这条路线绝对不存在。但是问题是如何定义一个。那我该怎么办。
我使用了Identityserver的混合流。
https://localhost:44375/signin-oidc
我已提及以下内容。
但是在上面的链接中有一个SPA中间件。这是VueCliMiddleWare。 (对我来说,这就是问题所在。路线。)
(对于其余路由,它会按照以下代码返回索引文件。仅此 / oidc-client 路径无效。)
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
{
context.Request.Path = "/index.html";
await next();
}
})
.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new List<string> { "index.html" } });
如果我定义以下内容
routes.MapSpaFallbackRoute(
name: "spa - fallback",
defaults: new { controller = "CatchAll", action = "Index" });
然后,此路由将重定向到该控制器。但是我无法返回索引文件。
答案 0 :(得分:0)
在下面的链接中提到缺少状态属性。
但是我仍然无法弄清楚如何设置一个。
因此,如果有人有最终答案,则不要将其标记为已接受答案。
https://github.com/aspnet/AspNetCore/issues/7501#issuecomment-464082989
已更新:
下面是答案。
答案 1 :(得分:0)
从2020年开始,您应该使用https来解决此问题
app.UseHttpsRedirection();
对于开发环境,请运行dotnet dev-certs https
--trust以信任本地证书
答案 2 :(得分:0)
我在使用 Amazon Cognito 时遇到了同样的错误。我的测试用户池工作正常(在本地主机上)但我的生产用户池不允许我登录。我终于意识到生产用户池也有一个客户端密钥(以及一个客户端 ID),可以通过设置:
services.AddOpenIdConnect(options => { ... options.ClientSecret = ...
这是浪费时间但现在看起来很明显的问题之一!