📜  启用 cors asp.net mvc - C# (1)

📅  最后修改于: 2023-12-03 15:22:59.738000             🧑  作者: Mango

启用 CORS in ASP.NET MVC - C#

在开发时,我们通常需要从不同的域或子域请求数据或资源。但是,浏览器允许跨域请求存在安全威胁,因此浏览器必须防止这种攻击,CORS(跨域资源共享)就是这样的实现方法。让我们来看看如何在 ASP.NET MVC 中启用 CORS。

什么是 CORS?

CORS代表跨域资源共享,它是一种浏览器安全功能,允许网页从不同的域或子域请求数据或资源。这有助于保护用户免受一些跨站点攻击。

如何启用CORS?

ASP.NET Core自带了中间件,这使得CORS的开发变得更加容易。让我们来看看如何在 ASP.NET Core 中启用 CORS:

步骤1:安装Microsoft.AspNetCore.Cors

首先,我们需要在项目中安装Microsoft.AspNetCore.Cors。我们可以使用NuGet包管理器,或使用Package Manager控制台运行以下命令:

Install-Package Microsoft.AspNetCore.Cors -Version x.x.x
步骤2:将中间件添加到Startup.cs文件

在 Startup.cs 文件中添加 CORS 中间件,我们需要使用以下代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("CorsPolicy",
                          builder => builder.AllowAnyOrigin()
                                            .AllowAnyMethod()
                                            .AllowAnyHeader());
    });

    services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseCors("CorsPolicy");
    app.UseMvc();
}

ConfigureServices 方法中,我们使用 AddCors 方法添加中间件,并向其提供具有名称“CorsPolicy” 的策略。在此示例中,我们设置允许任何来源(.AllowAnyOrigin())、任何方法(.AllowAnyMethod())和任何标头(.AllowAnyHeader())。

Configure 方法中,我们将“CorsPolicy”中间件添加到管道中,并使用 UseMvc 方法添加MVC中间件。

步骤3:启用跨域访问

通过添加上面的代码,我们已经在ASP.NET MVC中启用了CORS,但在我们的API或其他端点上禁用CORS。我们需要在需要CORS的控制器或动作中添加 [EnableCors] 属性,示例如下:

[EnableCors("CorsPolicy")]
public class ValuesController : Controller
{
    // Controller actions here...
}

在此示例中,我们使用名称为“CorsPolicy”的策略启用 CORS,因为在 ConfigureServices 方法中设置了此策略名称。

结论

通过遵循以上几个步骤,在 ASP.NET MVC 中启用 CORS 就轻而易举了。现在您可以从不同的源和子域请求数据和资源,并保持系统安全。