【发布时间】:2022-07-27 00:53:44
【问题描述】:
我使用来自 microsoft https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-6.0 的这个链接来创建我的 web api。
之后,我像这样添加数据库:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<Context>(opt => opt.UseSqlServer(
builder.Configuration.GetConnectionString("Default")
));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
var app = builder.Build();
而我的功能是这样的:
app.MapGet("/SomeRoute/{data}", async (long data, Context appDb) =>
{
var tabladata = await appDb.Table1
.Where(some code here)
.ToListAsync();
return Results.Ok(tabladata);
});
我发现我可以使用以下代码获取 IP 客户端: 在 var app = builder.Build(); 之前添加这个
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
之后:
app.UseForwardedHeaders();
最后是这样的:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<Context>(opt => opt.UseSqlServer(
builder.Configuration.GetConnectionString("Default")
));
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
var app = builder.Build();
app.UseForwardedHeaders();
如何获取调用 web api 函数的 IP 客户端?
谢谢。
【问题讨论】:
标签: c# asp.net minimal-apis