Я пытаюсь реализовать политику CORS в моем ASP. NET Core Web API.
Мой файл Startup.cs выглядит следующим образом:
public void ConfigureServices(IServiceCollection services)
{
options.AddPolicy("AllowSpecificOrigin", builder => builder.WithOrigins("https://google.com")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowAnyOrigin());
services.AddMvc()
.AddApplicationPart(Assembly.Load(new AssemblyName("Proxy.Api.Application")))
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.WriteIndented = true;
});
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseCors("AllowSpecificOrigin");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Я также добавил атрибут декоратора метода контроллера ниже:
[EnableCors("AllowSpecificOrigin")]
public Task<IActionResult> GetProxy([FromQuery] ProxyParams inputRequest)
{
....
}
Теперь, насколько я понимаю, эта строка:
options.AddPolicy("AllowSpecificOrigin", builder => builder.WithOrigins("https://google.com")
позволит только https://google.com домену получить доступ к моему метод контроллера с декоратором атрибута EnableCors.
Однако, когда я вызываю конечную точку API локально через curl или fiddler, метод все еще используется и возвращает 200. Что мне не хватает? Я проверил несколько сообщений, но застрял.