【问题标题】:CORS - How can I enable a series of ports (.Net Core 3.1)CORS - 如何启用一系列端口(.Net Core 3.1)
【发布时间】:2020-12-22 23:33:52
【问题描述】:

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

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

谁能帮忙?

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();
                });

【问题讨论】:

    标签: cors port wildcard asp.net-core-3.1


    【解决方案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());
    

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

    【讨论】:

    • 谢谢。不应该是return builder.WithOrigins(ports.Select(port => $"{base}:{port}").ToArray());吗?
    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 2019-10-18
    • 1970-01-01
    • 2020-11-24
    • 2020-05-22
    • 2020-05-05
    • 2020-04-27
    • 2021-07-27
    相关资源
    最近更新 更多