【发布时间】:2021-09-15 16:11:08
【问题描述】:
在 Azure 持久函数中获取远程 IP 地址(发出请求的客户端的地址)的正确方法是什么?
我的 HttpStart 方法的开始
public static async Task<HttpResponseMessage> HttpStart(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "report-data/get")]
HttpRequestMessage req,
[DurableClient] IDurableOrchestrationClient starter, ILogger log)
{
我试过了
((HttpContext)req.Properties["MS_HttpContext"]).Connection.RemoteIpAddress.ToString(); 但缺少 MS_HttpContext 属性。
我也试过
string result = string.Empty;
if (req.Headers.TryGetValues("X-Forwarded-For", out IEnumerable<string> headerValues))
{
result = headerValues.FirstOrDefault();
}
return result;
返回空字符串。
我看过这个similar question,但它假定请求的类型是HttpRequest。就我而言,它是HttpRequestMessage。
This answer 建议必须先启用X-Forwarded-For 标头。但我不知道如何在我的 Azure Function App(或我的持久功能)中执行此操作。
我正在使用 VS Code 在本地开发我的 Azure 函数。
【问题讨论】:
标签: .net-core azure-functions azure-durable-functions