如何在ASP.NET Core Web API中按IP/IP段配置CORS策略?
针对特定IP配置ASP.NET Core Web API的CORS策略
要将CORS策略限制为单个特定IP地址,只需修改AddCors中的配置,把允许所有来源的AllowAnyOrigin()替换为指定目标IP的WithOrigins()即可(注意必须包含协议前缀,如http://或https://)。
修改后的完整Program.cs代码
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); // Add CORS support - 限制为特定IP builder.Services.AddCors(options => { options.AddDefaultPolicy(builder => { // 替换为你要开放的目标IP地址,记得带上协议 builder.WithOrigins("http://192.168.1.100") .AllowAnyMethod() .AllowAnyHeader(); }); }); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); // Enable CORS app.UseCors(); app.MapControllers(); app.Run();
补充说明
- 若需开放多个特定IP,可在
WithOrigins中传入多个参数,示例:WithOrigins("http://192.168.1.100", "https://10.0.0.5") - ASP.NET Core原生CORS不支持直接匹配IP范围,如需实现范围限制,可自定义中间件:在CORS中间件前检查请求来源IP,不在允许范围内则直接返回拒绝响应。
内容的提问来源于stack exchange,提问作者Junaid Azhar
相关产品推荐
相关产品推荐

