身份服务器4 - "path was not for an allowed IdentityServer CORS endpoint"



我有一个使用 IdentityServer4 混合流的 .netcore 3.1 MVC 项目。

身份服务器具有具有过期Utcset的身份验证属性(1 小时(。

在MVC客户端上,有一个带有SlidingExpire(false(和ExpireTimeSpan(15分钟(的cookie。

登录到应用程序后,应用程序 cookie 显示它的有效期为 1 小时。如果我刷新或更改为应用程序中的另一个页面,应用程序 cookie 将延长到期时间。到目前为止,这一切都按预期工作。

但是,如果我尝试在页面上进行 ajax 调用,事情就会变得毛茸茸的。如果我在页面上停留一段时间(超过 15 分钟(而不刷新,ajax 调用将失败并显示 Http 错误 0。查看身份服务器日志时,它显示:

对路径发出的 CORS 请求:/连接/从源授权: http://localhost:5100 但被忽略了,因为路径不适合 允许的身份服务器 CORS 端点

找不到指定请求的 CORS 策略。

为了解决这个问题,在启动中添加了以下内容.cs ConfigureServices for the identityServer。

var cors = new DefaultCorsPolicyService(log)
{
AllowAll = true
};
services.AddSingleton<ICorsPolicyService>(cors);
services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.WithOrigins("http://localhost:5100")
.AllowAnyHeader()
.AllowAnyMethod();
});
});

在"配置"中,应用。添加了 UseCors((。

但是,IdentityServer 中仍然会出现相同的错误消息。

有没有人遇到过类似的问题,或者知道我做错了什么?

您可能还需要在客户端设置中添加 CORS。看到这里。您必须在客户端的AllowedCorsOrigins设置中添加URL。

调用应用程序。在应用程序之前使用Cors((。配置方法中的UseEndpoints((将解决此问题。

相关内容

最新更新