【问题标题】:Enable CORS for any port on localhost as well as for the list of specific domains为本地主机上的任何端口以及特定域列表启用 CORS
【发布时间】:2022-08-19 23:07:58
【问题描述】:

在 ASP.Net core 6.0 中,我想为 localhost 以及特定域列表启用 CORS

我已经实现了这样的东西

public class Startup
{
    private readonly string nondevCORSPolicyName = \"NonDevCorsPolicy\";
    private readonly string devCORSPolicyName = \"DevCorsPolicy\";

    public void ConfigureServices(IServiceCollection services)
    {       
        ....
        services.AddCors(opt =>
        {
            opt.AddPolicy(name: this.nondevCORSPolicyName, builder =>
            {
                builder.WithOrigins(\"https://*.companydomain.com\")
                    .SetIsOriginAllowedToAllowWildcardSubdomains();
            });
        });

        services.AddCors(opt =>
        {
            opt.AddPolicy(name: this.devCORSPolicyName, builder =>
            {
                builder.SetIsOriginAllowed(origin => new Uri(origin).Host == \"localhost\");
            });
        });
        ....
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseCors();
        .....
    }
}

它有效吗?

  • 在发布问题之前,您是否尝试过运行以查看它是否有效?
  • 如果您使用的是 Asp.Net Core 6.0,则项目将没有 Startup.cs 文件。我建议你参考Enable Cross-Origin Requests (CORS) in ASP.NET Core。它可以帮助您获取代码示例和有关实现的详细信息。

标签: asp.net-core .net-core cors asp.net-core-webapi


【解决方案1】:

我能够实现这一点,如下所示

// CORS Policies
builder.Services.AddCors(options =>
{
    options.AddDefaultPolicy(builder =>
    {
        builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost" || new Uri(origin).Host == "myweb.local");
    });
});


// Enable Cors
app.UseCors();

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2021-01-28
    • 1970-01-01
    • 2017-11-24
    • 2011-07-04
    • 2019-11-05
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    相关资源
    最近更新 更多