• 负载均衡的场景下ASP.NET Core如何获取客户端IP地址


    在ASP.NET中,使用负载均衡时,可以通过ServerVariables获取客户端的IP地址。

    var ip = request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    但在ASP.NET Core中没有ServerVariables的对应实现,需要换一种方式,可以在HttpContext.Request.Headers中获取,需要注意的是key与ServerVariables方式不一样,ServerVariables中是"HTTP_X_FORWARDED_FOR",HttpContext.Request.Headers中是"X-Forwarded-For",示例代码如下:

    var ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();

    完整的扩展方法实现如下:

    public static class HttpContextExtension
    {
        public static string GetUserIp(this HttpContext context)
        {
            var ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();
            if (string.IsNullOrEmpty(ip))
            {
                ip = context.Connection.RemoteIpAddress.ToString();
            }
            return ip;
        }
    }
  • 相关阅读:
    快速读取数字
    std:ios:sync_with_stdio (false)以及局限性
    差分,差分数组
    归并排序
    2020-07-06日报博客
    OAuth2-授权码模式 登录流程
    OAuth2 简介
    SpringSecurity连接数据库
    SpringSecurity中的授权
    SpringSecurity 入门
  • 原文地址:https://www.cnblogs.com/dudu/p/5972649.html
Copyright © 2020-2023  润新知