首页 > 解决方案 > CORS - 如何启用一系列端口(.Net Core 3.1)

问题描述

如何在一个语句中允许某个站点的一系列端口?

这是我的代码,希望将所有五个放在一个更智能的语句中。

谁能帮忙?

options.AddPolicy("SecurePolicy",
                builder =>
                {
                    builder.WithOrigins("http://localhost:8080",
                                        "http://localhost:8081",
                                        "http://localhost:8082",
                                        "http://localhost:8083",
                                        "http://localhost:8084")
                        .SetIsOriginAllowedToAllowWildcardSubdomains();
                    builder.AllowAnyHeader();
                    builder.AllowAnyMethod();
                });

标签: corsportwildcardasp.net-core-3.1

解决方案


CorsPolicyBuilder您可以在将为您生成这些 URL的扩展方法上创建:

public static CorsPolicyBuilder WithOrigins(this CorsPolicyBuilder builder, string base, params int[] ports)
{
    return builder.WithOrigins(ports.Select(p => $"{base}:{p}").ToArray());
}

然后你可以像这样使用它:

options.AddPolicy("SecurePolicy", builder => builder
    .WithOrigins("http://localhost", 8080, 8081, 8082, 8083, 8084)
    .SetIsOriginAllowedToAllowWildcardSubdomains()
    .AllowAnyHeader()
    .AllowAnyMethod());

或者,您也可以只传入第一个和最后一个端口,并让扩展方法在端口上循环。


推荐阅读