异常:关联失败。未知位置
Exception: Correlation failed. Unknown location
身份服务器身份验证重定向到我的应用程序后,它给出
异常:关联失败。
未知位置
现在因为我在用SPA。这条路肯定是没有的。但问题是我如何定义一个。我应该在那里做什么。
我用过Identityserver的混合流。
https://localhost:44375/signin-oidc
我已经提到了以下内容。
但是在上面link有一个SPA中间件。这是 VueCliMiddleWare。 (对我来说,这是在制造问题。路线。)
(对于其余路由,它 return 根据以下代码索引文件。只有此 /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" });
然后这条路线重定向到那个控制器。但是我无法 return 索引文件。
下面提到 link 缺少状态 属性。
但是我还是不知道怎么设置。
因此,如果有人有最终答案,则不会将其标记为已接受的答案。
https://github.com/aspnet/AspNetCore/issues/7501#issuecomment-464082989
已更新:
下面是这个问题的答案。
从 2020 年开始,您应该使用 https 来解决这个问题
app.UseHttpsRedirection();
对于开发环境运行dotnet dev-certs https --trust
信任本地证书
我在使用 Amazon Cognito 时遇到了同样的错误。我的测试用户池工作正常(在本地主机上),但我的生产用户池不允许我登录。我终于意识到生产用户池也有一个客户端密码(以及一个客户端 ID),可以通过:
services.AddOpenIdConnect(options => { ... options.ClientSecret = ...
这是浪费时间但现在看起来很明显的问题之一!
首先检查您是否有
public static IEnumerable<ApiScope> GetScopes()
{
return new List<ApiScope>
{
new ApiScope()
{
Name = "catalogs"
}
};
}
在您的 config.cs 文件中。如果您在本地主机上,则必须在 IdentityServer 和客户端应用程序中为 redirect_url 使用相同的地址。
(如果您在 identityserver 中设置本地主机,则必须在客户端应用程序中使用本地主机作为 redirecturl 而不是 127.0.0.1)。
希望对您有所帮助 ;)
身份服务器身份验证重定向到我的应用程序后,它给出
异常:关联失败。 未知位置
现在因为我在用SPA。这条路肯定是没有的。但问题是我如何定义一个。我应该在那里做什么。
我用过Identityserver的混合流。
https://localhost:44375/signin-oidc
我已经提到了以下内容。
但是在上面link有一个SPA中间件。这是 VueCliMiddleWare。 (对我来说,这是在制造问题。路线。)
(对于其余路由,它 return 根据以下代码索引文件。只有此 /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" });
然后这条路线重定向到那个控制器。但是我无法 return 索引文件。
下面提到 link 缺少状态 属性。
但是我还是不知道怎么设置。
因此,如果有人有最终答案,则不会将其标记为已接受的答案。
https://github.com/aspnet/AspNetCore/issues/7501#issuecomment-464082989
已更新:
下面是这个问题的答案。
从 2020 年开始,您应该使用 https 来解决这个问题
app.UseHttpsRedirection();
对于开发环境运行dotnet dev-certs https --trust
信任本地证书
我在使用 Amazon Cognito 时遇到了同样的错误。我的测试用户池工作正常(在本地主机上),但我的生产用户池不允许我登录。我终于意识到生产用户池也有一个客户端密码(以及一个客户端 ID),可以通过:
services.AddOpenIdConnect(options => { ... options.ClientSecret = ...
这是浪费时间但现在看起来很明显的问题之一!
首先检查您是否有
public static IEnumerable<ApiScope> GetScopes()
{
return new List<ApiScope>
{
new ApiScope()
{
Name = "catalogs"
}
};
}
在您的 config.cs 文件中。如果您在本地主机上,则必须在 IdentityServer 和客户端应用程序中为 redirect_url 使用相同的地址。 (如果您在 identityserver 中设置本地主机,则必须在客户端应用程序中使用本地主机作为 redirecturl 而不是 127.0.0.1)。 希望对您有所帮助 ;)