如何使用 IdentityServerClientCorsOrigins? (ABP.IO)

How to use IdentityServerClientCorsOrigins? (ABP.IO)

目前,cors 来源是在 appsettings 中配置的,但是我无法以从 SQL 服务器数据库获取来源的方式进行配置。

我已经注释掉了 withOrigins 部分,但是我已经在数据库中配置了它,但它被拒绝了

这是我从 http://localhost:3000 调用时得到的错误

Access to XMLHttpRequest at 'https://ids.local/connect/userinfo' from origin 'http://localhost:3000' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

在 IdentityServer 项目上应用这些:

  1. AllowedCorsOrigins 添加到 Config.cs 或数据库(如果使用 EF)中的客户端配置
AllowedCorsOrigins =
                        { 
                            "http://localhost:3000" 
                        },

确保在配置 CORS 时使用来源(而不是 URL)。例如:https://foo:123/ 是一个 URL,而 https://foo:123 是一个 origin.

参考:http://docs.identityserver.io/en/dev/topics/cors.html#client-based-cors-configuration

  1. 如果您有自定义 cors 策略,请将其添加到 startup.cs - ConfigureServices
services.AddCors(options =>
            {
                options.AddPolicy("default", policy =>
                {
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });
  1. startup.cs - Configure 上,在 IdentityServer 之后添加 cors。
app.UseIdentityServer();
app.UseCors("default");

IDS4 已经注册了自定义 cors 策略,如果你也有,请确保在 IDS4 中间件之后添加它