在asp.net core 3中的CorsAuthorizationFilterFactory

22

我正在尝试将一个项目从asp.net Core 2.2.6迁移到asp.net core 3.0 在我的启动项中,我有:

services.AddMvc(options =>
{
    options.Filters.Add(new CorsAuthorizationFilterFactory("default")); 
})

当我更新到netcoreapp3.0时,我收到以下错误:The type or namespace name 'CorsAuthorizationFilterFactory' could not be found (are you missing a using directive or an assembly reference?)

有人知道在asp.net core 3中它的等效项是什么吗?


2
Microsoft.AspNetCore.Mvc.Cors.Internal现在可能是内部的。我不知道是否有直接等价物,但您也可以添加一些代码以启用CORS,如文档所述。 - user4864425
4
你可以从这里找到,它在.NET Core 3.0中已不再包含。 - Fei Han
这个回答解决了你的问题吗?CORS策略和.NET Core 3.1出现问题 - Michael Freidgeim
2个回答

1
在ASP.NET Core 3.0及更高版本中,CORS的配置与早期版本有所不同。CorsAuthorizationFilterFactory的使用方式也不同。
public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("default", builder =>
        {
            builder.WithOrigins("yoursite")
                .AllowAnyHeader()
                .AllowAnyMethod();
        });
    });

然后在你的配置方法中
app.UseCors("default"); 

必须消除这个错误


0

我在ConfigureServices中的启动代码中使用以下行来处理CORS:

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

并在配置中:

app.UseCors(x =>
        {
            x.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader();
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接