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";
    //}
    }

  • 相关阅读:
    转:CXF学习笔记一:如何创建、发布和访问基于CXF的服务
    转:Osgi实战中的问题
    转:用Spring JMS使异步消息变得简单
    jqueryeasyui分页组件的用法
    JavaScript高级程序设计(第三版)学习笔记一
    浅谈组建开发团队
    平常心
    狮子座与摩羯座 转载
    android项目实战(一)
    chrome安装media player无效的解决方法
  • 原文地址:https://www.cnblogs.com/zhangkjun/p/6143388.html
Copyright © 2011-2022 走看看