例外:关联失败。位置不明

时间:2019-02-10 15:38:01

标签: c# asp.net-core asp.net-core-mvc identityserver4 vue-cli-3

经过Identityserver身份验证后,重定向到我的应用程序后,它给出

异常:相关性失败。 未知位置

现在,因为我正在使用SPA。这条路线绝对不存在。但是问题是如何定义一个。那我该怎么办。

我使用了Identityserver的混合流。

https://localhost:44375/signin-oidc

我已提及以下内容。

https://github.com/IdentityServer/IdentityServer4.Samples/blob/master/Clients/src/MvcHybridAutomaticRefresh/Startup.cs

但是在上面的链接中有一个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" });

然后,此路由将重定向到该控制器。但是我无法返回索引文件。

3 个答案:

答案 0 :(得分:0)

在下面的链接中提到缺少状态属性。

但是我仍然无法弄清楚如何设置一个。

因此,如果有人有最终答案,则不要将其标记为已接受答案。

https://github.com/aspnet/AspNetCore/issues/7501#issuecomment-464082989

已更新:

下面是答案。

https://stackoverflow.com/a/54721271/9263418

答案 1 :(得分:0)

从2020年开始,您应该使用https来解决此问题

app.UseHttpsRedirection();

对于开发环境,请运行dotnet dev-certs https --trust以信任本地证书

答案 2 :(得分:0)

我在使用 Amazon Cognito 时遇到了同样的错误。我的测试用户池工作正常(在本地主机上)但我的生产用户池不允许我登录。我终于意识到生产用户池也有一个客户端密钥(以及一个客户端 ID),可以通过设置: services.AddOpenIdConnect(options => { ... options.ClientSecret = ...

这是浪费时间但现在看起来很明显的问题之一!