Jam*_*ite 33 c# cors asp.net-core-mvc asp.net-core
我想在使用ASP.NET Core MVC构建的API上启用CORS,但所有当前文档都引用该框架的早期版本.
ali*_*air 29
关于新Cors功能的注释非常简单,但通过查看新的类和方法,我能够在我的解决方案中使用它.我的Web API startup.cs看起来像这样.您可以通过使用新CorsPolicy类来了解如何构建自己的起源和策略.并使用AddCors和UseCors方法启用CORS .
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//Add Cors support to the service
services.AddCors();
var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();
policy.Headers.Add("*");
policy.Methods.Add("*");
policy.Origins.Add("*");
policy.SupportsCredentials = true;
services.ConfigureCors(x=>x.AddPolicy("mypolicy", policy));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Configure the HTTP request pipeline.
app.UseStaticFiles();
//Use the new policy globally
app.UseCors("mypolicy");
// Add MVC to the request pipeline.
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用新属性来控制控制器中的策略
[EnableCors("mypolicy")]
[Route("api/[controller]")]
Run Code Online (Sandbox Code Playgroud)
Hen*_*ema 19
我使用以下代码使用它:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()));
}
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以链接AllowAnyHeader()和/或AllowAnyMethod()配置操作.
要为完整的应用配置它:
public void Configure(IApplicationBuilder app)
{
app.UseCors("AllowAll");
}
Run Code Online (Sandbox Code Playgroud)
或者只是为了一个控制器:
[EnableCors("AllowAll")]
public class HomeController : Controller
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
-
更新:为所有请求配置CORS 可以更容易一些:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors();
}
public void Configure(IApplicationBuilder app)
{
app.UseCors(builder =>
{
builder.WithOrigins("http://some.origin.com")
.WithMethods("GET", "POST")
.AllowAnyHeader();
});
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅文档.
在最近RC2的ASP.NET Core中.
NuGet包是
"Microsoft.AspNetCore.Owin": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Cors": "1.0.0-rc2-final",
Run Code Online (Sandbox Code Playgroud)
在Startup.cs中
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddCors();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseCors(builder => builder
.AllowAnyOrigin());
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20658 次 |
| 最近记录: |