IdentityServer4 - "路径不属于允许的IdentityServer CORS端点"。

问题描述 投票:0回答:1

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

IdentityServer有一个ExpiresUtcset(1小时)的AuthenticationProperties,在MVC客户端上,有一个SlidingExpiration(false)和ExpireTimeSpan(15分钟)的cookie。

在MVC客户端上,有一个cookie的SlidingExpiration(false)和ExpireTimeSpan(15 minutest)。

登录应用后,应用cookie显示到期时间为1小时。如果我在应用程序中刷新或切换到其他页面,应用程序cookie的到期时间就会延长。到目前为止,这一切都在正常工作。

然而,如果我尝试在一个页面上进行ajax调用,事情就变得很棘手。如果我在页面上停留了一段时间(超过15分钟)而没有刷新,ajax调用就会以Http错误0失败。

CORS请求从原点发出路径:connectauthorize: http:/localhost:5100 但被忽略了,因为路径不属于允许的IdentityServer CORS端点。

没有为指定的请求找到CORS策略。

为了处理这个问题,在starttup.cs的ConfigureServices中为identServer添加了以下内容。

    var cors = new DefaultCorsPolicyService(log)
    {
        AllowAll = true
    };

    services.AddSingleton<ICorsPolicyService>(cors);

    services.AddCors(options =>
    {
        options.AddDefaultPolicy(builder =>
        {
            builder.WithOrigins("http://localhost:5100")
            .AllowAnyHeader()
            .AllowAnyMethod();
        });
    });

在configure中,增加了app.UseCors()。

但是在IdentityServer中还是出现了同样的错误信息。

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

asp.net-core-mvc identityserver4
1个回答
0
投票

你也可能需要在你的客户端设置中添加CORS。请看 这个. 您必须在客户端的AllowedCorsOrigins设置中添加您的URL。

© www.soinside.com 2019 - 2024. All rights reserved.