📅  最后修改于: 2023-12-03 15:22:59.738000             🧑  作者: Mango
在开发时,我们通常需要从不同的域或子域请求数据或资源。但是,浏览器允许跨域请求存在安全威胁,因此浏览器必须防止这种攻击,CORS(跨域资源共享)就是这样的实现方法。让我们来看看如何在 ASP.NET MVC 中启用 CORS。
CORS代表跨域资源共享,它是一种浏览器安全功能,允许网页从不同的域或子域请求数据或资源。这有助于保护用户免受一些跨站点攻击。
ASP.NET Core自带了中间件,这使得CORS的开发变得更加容易。让我们来看看如何在 ASP.NET Core 中启用 CORS:
首先,我们需要在项目中安装Microsoft.AspNetCore.Cors。我们可以使用NuGet包管理器,或使用Package Manager控制台运行以下命令:
Install-Package Microsoft.AspNetCore.Cors -Version x.x.x
在 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中间件。
通过添加上面的代码,我们已经在ASP.NET MVC中启用了CORS,但在我们的API或其他端点上禁用CORS。我们需要在需要CORS的控制器或动作中添加 [EnableCors] 属性,示例如下:
[EnableCors("CorsPolicy")]
public class ValuesController : Controller
{
// Controller actions here...
}
在此示例中,我们使用名称为“CorsPolicy”的策略启用 CORS,因为在 ConfigureServices
方法中设置了此策略名称。
通过遵循以上几个步骤,在 ASP.NET MVC 中启用 CORS 就轻而易举了。现在您可以从不同的源和子域请求数据和资源,并保持系统安全。