如何使 IdentityServer 客户端与任何来源一起工作?

How to make IdentityServer client works with any origin?

当我在 IdentityServer 中创建一个新客户端时,我可以将 AllowedCorsOrigins 设置为 url 列表,但是有没有办法让它在不设置特定 url 的情况下与任何来源一起工作?

我搜索了一下,如果我是对的,似乎 ICorsPolicyService 的自定义实现是这种方式,不确定这是否是唯一的方式,但如果是的话,我该如何在身份服务器中注册它?我创建了 class 但我 我不确定如何进一步使其与身份服务器一起工作?

在您的 ConfigureServices 启动方法中,您可以像这样设置 Cors:

        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

请注意,这允许任何来源,但也允许任何 header/method ...您可能希望根据自己的用例更改此设置。

然后在启动的 Configure 中确保您确实使用了您的策略,如下所示:

app.UseCors("CorsPolicy");