我无法从MVC Controller中的响应头获取值。我触发了azure函数HTTP并尝试将值传递给响应头" ClientIPADDR:MYCustomHeaders" 302重定向。那么如何从MVC控制器中的响应头读取值?
Cache-Control:no-cache
ClientIPADDR:MYCustomHeaders
Content-Length:0
Date:Mon, 22 Jan 2018 14:03:09 GMT
Expires:-1
Location:http://example-read-response-header.azurewebsites.net/home/index
Pragma:no-cache
Server:Microsoft-IIS/10.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
var ipAddress = Request.Headers [" ClientIPADDR"];
Request.ServerVariables.Get(" ClientIPADDR&#34);
尝试了这个,但无法获得价值。
修改:附加信息
这是azure函数,它将使用给定的URL进行302重定向,这将显示带有 azure函数代理的 azure函数代理的google验证码页面的html页面
[FunctionName("TestFunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "testExample/{token}")]HttpRequestMessage req, string token, TraceWriter log)
{
string ipAddress = string.Empty;
if (req.Properties.ContainsKey("MS_HttpContext"))
{
ipAddress = ((HttpContextWrapper)req.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
HttpResponseMessage errorResponse;
errorResponse = req.CreateResponse(HttpStatusCode.Found);
errorResponse.Headers.Add("ClientIPAddress", ipAddress);
errorResponse.Headers.Location = new Uri("http://localhost:62418/Home/Index" + "?code=" + token);
return errorResponse;
}
此功能显示带有天蓝色代理路由的验证码html页面以形成操作属性,该属性将重定向到控制器操作方法我试图获取客户端IP地址,但它正在给我azure app service ip address。
<form name="ad" id="form1" action="/validate" method="post">
<main class="main-padding">
//google captcha html
</div>
</main>
</form>
不使用代理
<form name="ad" id="form1" action="http://example-read-response-header.azurewebsites.net/home/index" method="post">
<main class="main-padding">
//google captcha html
</div>
</main>
</form>
上面的POST方法给出了正确的IP地址。如果我不想在html中显示azurewebsites url并且使用代理使用给我azure app service url。我尝试在头文件中传递客户端IP地址但是控制器操作方法没有得到那个报头(Request.Header [&#34;端ClientIPAddress&#34;])。有没有其他方法来获取客户端IP地址?