zoukankan      html  css  js  c++  java
  • asp.net core获取HttpContext相关操作

    建立类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Http;

    namespace Iyibank.Core
    {
    public static class MyHttpContext
    {
    public static IServiceProvider ServiceProvider;

    static MyHttpContext()
    { }


    public static HttpContext Current
    {
    get
    {
    object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor));

    HttpContext context = ((IHttpContextAccessor)factory).HttpContext;
    return context;
    }
    }
    }
    }

    Startup.cs添加如下

     public void ConfigureServices(IServiceCollection services)内容下添加如下

     services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

    Configure修改如下

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,IServiceProvider svp)

    Configure下添加以下内容

       Iyibank.Core.MyHttpContext.ServiceProvider = svp;

    这样在其他地方需要使用时,直接调用即可

    /// <summary>
    /// 获得当前页面客户端的IP
    /// </summary>
    /// <returns>当前页面客户端的IP</returns>
    public static string GetIP()
    {
    //try
    //{
    string result = (MyHttpContext.Current.Request.Headers["HTTP_X_FORWARDED_FOR"].ToString() != null
    && MyHttpContext.Current.Request.Headers["HTTP_X_FORWARDED_FOR"] != String.Empty)
    ? MyHttpContext.Current.Request.Headers["HTTP_X_FORWARDED_FOR"]
    : MyHttpContext.Current.Request.Headers["REMOTE_ADDR"];
    // string result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    if (string.IsNullOrEmpty(result))
    result = MyHttpContext.Current.Request.Headers["HTTP_X_FORWARDED_FOR"];

    if (string.IsNullOrEmpty(result) || !Utils.IsIP(result))
    return "127.0.0.1";

    return result;
    //}
    //catch
    //{
    // return "127.0.0.1";
    //}
    }

  • 相关阅读:
    结对编程队友个人项目分析
    Android入门3:从Toolbar到Material Design
    Qt串口通信
    AVT Vimba与OpenCV环境配置
    Git远程使用技巧
    Android入门2:从GridView控件使用到自定义Adapter
    Android入门1:使用VideoView和MediController播放视频
    kafka+spark streaming+redis学习
    kafka学习笔记
    安卓获取服务器返回的图片资源路径并下载图片
  • 原文地址:https://www.cnblogs.com/zhangkjun/p/6143388.html
Copyright © 2011-2022 走看看