当我想限制所有控制器的跨域请求时,我有ASP.NET Core 2.1 WebAPI应用程序,但应该允许所有此类请求的控制器除外。
什么是最好的方法?
我试图在Startup中为UseCors定义“受限”策略,并为EnableCors定义“ allow-all”策略,但这似乎不起作用。
这是我的设置:
Startup.ConfigureServices:
services.AddCors(options => {
options.AddPolicy("RestrictedAccess",
builder => builder
.WithMethods("GET", "POST")
.WithOrigins("mydomain1.com", "mydomain2.com")
.AllowAnyHeader());
options.AddPolicy("AllowAny",
builder => builder
.AllowAnyOrigin()
.AllowAnyOrigin()
.AllowAnyHeader());
});
启动。配置:
. . . .
app.UseCors("RestrictedAccess");
app.UseMvc();
我的控制器:
[EnableCors("AllowAny")]
public class PublicController : ControllerBase {
. . . . . .
它应该工作还是我需要在Startup内部使用MapWhen。是否要为不同的端点指定不同的CORS策略?