c# - 为本地主机上的任何端口启用 CORS

标签 c# asp.net-core

在 asp.net 核心中,我可以使用中间件在某些方法上启用 CORS,如 described here

我想知道是否可以为 localhost 上的任何方案和任何端口启用 CORS (仅用于测试目的)。我试过通配符,但它不起作用

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        if(_environment.IsDevelopment())
        {
              options.AddDefaultPolicy(
                 builder =>
                 {
                     builder.WithOrigins("http://localhost/*",
                                         "https://localhost/*");
                 });
             });
        }
        else
        {
            options.AddDefaultPolicy(
                 builder =>
                 {
                     builder.WithOrigins("http://example.com",
                                         "http://www.contoso.com");
                  });
             });
        }

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

最佳答案

ASP.NET Core 的 SetIsOriginAllowed 方法使您可以完全控制是否允许来源参与 CORS。这是基于您的代码示例的示例:

if(_environment.IsDevelopment())
{
    options.AddDefaultPolicy(builder =>
    {
        builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost");
    });
}
else
{
    // ...
}
origin传递给 SetIsOriginAllowed 的值delegate 是完整的原点,看起来像 http://localhost:8080 .使用 Uri ,上面的代码比较 Host 反对 localhost ,最终允许所有 localhost起源。

关于c# - 为本地主机上的任何端口启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57530680/

相关文章:

c# - 让 DisplayFor(m => m.Property) 显示换行符和格式?

c# - 使用 Entity Framework 4.1 - DB First 方法删除/添加自引用 "friend"

c# - ASP.NET Core AsyncActionFilter 记录 ActionArguments 和结果

c# - 自定义控件属性 - C#、窗体

c# - 使用空的可编辑表启动 DataGridView

c# - 将多路径 SVG 转换为几何图形再转换为 WPF

c# - ASP.NET CORE 版本中的 HttpContext.Current.Request.Form.AllKeys

c# - API Json 对具有大写属性首字母的 C# 对象的响应

c# - 即使更改 cshtml 文件,dotnet.exe 也会使用缓存

c# - 为什么 IsEnabled 是 ILogger 接口(interface)的一部分?