首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏飞扬的花生

    HttpContext.Cache属性

          HttpContext基于HttpApplication的处理管道,由于HttpContext对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端 HttpPost] public JsonResult GetData() { string data = Convert.ToString(HttpContext.Cache.Get returns></returns> [HttpPost] public void InsertCache(string value) { HttpContext.Cache.Insert

    75250发布于 2018-01-18
  • 来自专栏NetCore 从壹开始

    Httpcontext 获取用户信息

    http://mpvideo.qpic.cn/0bf23qaamaaamyanvrglafpfbxgda3oaabqa.f10002.mp4?dis_k=abd635532fae29e55080d65

    1.4K10编辑于 2022-04-11
  • 来自专栏大内老A

    采用”传统”方式获取当前HttpContext

    有时候我们会使用一些由于某些原因无法使用依赖注入的组件,我们如何提取当前HttpContext呢? 要回答这个问题,就得先来了解表示当前HTTP请求上下文的HttpContext对象被存储在什么地方? 既然我们可以利用注入的IHttpContextAccessor服务来得到当前HttpContext,针对HttpContext的获取逻辑自然就体现在该接口的实现类型HttpContextAccessor Context; } } 上代码片段可以看出,当前HttpContext被存储在静态字段表示的一个AsyncLocal<HttpContextHolder> 对象上(HttpContext被HttpContextHolder ); } } } 上面的代码体现了采用表达式树实现的针对当前HttpContext的获取逻辑。 GetCurrentHttpContext针对当前HttpContext的提取可以通过如下的程序来验证。

    76730发布于 2020-11-24
  • 来自专栏大内老A

    ASP.NET Core管道详解: HttpContext本质论

    四、HttpContext上下文的创建与释放 五、针对请求的DI容器-RequestServices 一、HttpContext 在《模拟管道实现》创建的模拟管道中,我们定义了一个简易版的HttpContext IHttpContextAccessor对象提供如下所示的HttpContext属性返回针对当前请求的HttpContext对象,由于该属性并不是只读的,所以当前的HttpContext也可以通过该属性进行设置 HttpContext对象。 _httpContextCurrent = new AsyncLocal<HttpContext>(); public HttpContext HttpContext { = null) { _httpContextAccessor.HttpContext = httpContext; } httpContext.FormOptions

    1.5K30发布于 2020-11-24
  • 来自专栏技术博客

    WCF HttpContext.Current为空的问题

    原来在项目中使用HttpContext.Current没什么问题,但是到了中期阶段,项目重构等,并且要求使用WCF,所以就出现了HttpContext.Current为null的问题。

    1.3K20发布于 2018-09-11
  • 来自专栏远在上海

    HttpContext.Current.Cache还是HttpRuntime.Cache

    HttpRuntime.Cache在非Web环境也支持,如WinForm、WPF HttpContext.Current.Cache只能用在Web中 MSDN上的解释如下: HttpContext.Current.Cache 为一探究竟,我们用.NET Reflector看看HttpContext.Cache和HttpRuntime.Cache的源码: //System.Web.HttpContext.Cache属性实现 我们再来看看MSDN对HttpContext和HttpRuntime的定义: HttpContext:封装有关个别HTTP请求的所有HTTP特定的信息,HttpContext.Current为当前的HTTP 请求获取HttpContext对象。 HttpContext.Current.Cache是对上述缓存类的封装,由于封装到了HttpContext类中,局限于只能在知道HttpContext下使用,即只能用于Web应用。

    93330发布于 2019-02-26
  • 来自专栏跟着阿笨一起玩NET

    Unit Test单元测试时如何模拟HttpContext

    archive/2011/03/31/2001366.html http://hi.baidu.com/xiaoduo170/item/a4f79a79c8bc733e71442358 在做单元测试的时候HttpContext.Current 是为null的 而有些dll是和HttpContext绑定的(很大原因是...net大部分用于web项目) 或者是试图在windows form 或者console中使用这些dll就挂了... 当然HttpContext.Current是可以赋值的...那么最最简单的方法就是直接new一个HttpContext给它啦 HttpRequest request = new HttpRequest( "", "http://localhost", ""); HttpContext.Current = new HttpContext(request, new HttpResponse = new HttpContext(new HttpRequest("", "http://localhost", ""),new HttpResponse(new StringWriter(new

    1.8K10发布于 2018-09-19
  • 来自专栏ASP.NETCore

    在ASP.NET Core中怎么使用HttpContext.Current

    如果我们想使用以前版本中的HttpContext.Current的话,目前是不可用的,因为ASP.NET Core中是并没有这个API的。    当然我们也可以通过在Controller中访问HttpContext,但是某些情况下,这样使用起来还是不如HttpContext.Current方便。 HttpContext.Current为空的情况。 __" + AppDomain.CurrentDomain.Id; public HttpContext HttpContext { get > _httpContextCurrent = new AsyncLocal<HttpContext>(); public HttpContext HttpContext

    3.5K40发布于 2018-09-05
  • 来自专栏汪宇杰博客

    ASP.NET Core 单元测试:如何 Mock HttpContext.Features.Get()

    导语 在 ASP.NET Core 里,如果你想单元测试 HttpContext.Features.Get<SomeType>(),这个技巧一定不要错过。 我使用 HttpContext.Features.Get<IExceptionHandlerPathFeature>() 方法。 HttpContext.TraceIdentifier; var exceptionFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature 但我发现 HttpContext 上的 Features 属性是只读的。因此没有办法将 mock 好的对象赋值给它。 namespace Microsoft.AspNetCore.Http { public abstract class HttpContext { protected HttpContext

    1K20发布于 2021-05-27
  • 来自专栏痴者工良

    ASP.NET Core 中 HttpContext 详解与使用 | Microsoft.AspNetCore.Http 详解

    发现应用程序有一个非常主要的 “传导体” HttpContext 。 赶忙写一下笔记先。 ---- “传导体” HttpContext 要理解 HttpContext 是干嘛的,首先,看图   图一 内网访问程序 图二 反向代理访问程序 ASP.NET Core 程序中,Kestrel id) { var httpcontext = _accessor.HttpContext; return View(httpcontext ----  HttpContext 类型的属性和方法 在 ASP.NET Core 中,系统为每一个请求分配一个线程,HttpContext 针对的,就是一个线程。 ---- HttpContext 的其它方法使用这里不再赘述,需要注意的是,HttpContext 是针对一个请求的而产生的。 一个逗逗的大学生

    3.2K20发布于 2019-08-08
  • 来自专栏历史专栏

    【愚公系列】2023年02月 WMS智能仓储系统-003.HttpContext的使用

    文章目录 前言 一、HttpContext的使用 1.注入 2.控制器中使用 3.运行 二、Session和Cookies的封装 1.封装类 2.注入 3.使用 ---- 前言 网页和webapi程序交互是通过 HttpContext 传导,HttpContext包含了Cookie、Seesion、提交表单、上传数据、身份认证等信息。 HttpContext 对象主要包含以下信息: Request 用于获取用户请求的对象,浏览器向Web程序提交表单、访问的URL、URL中包含的查询字符串、报文请求头等等。 需要进行注入,.NET Core中内置了IHttpContextAccessor接口,HttpContextAccessor默认实现了它简化了访问HttpContext。 它必须在程序启动时在IServicesCollection中注册,这样在程序中就能获取到HttpContextAccessor,并用来访问HttpContext

    60910编辑于 2023-03-16
  • 来自专栏跟着阿笨一起玩NET

    ASP.NET多线程下使用HttpContext.Current为null解决方案

    多线程或者异步调用中如何访问HttpContext? 前面我还提到在APM模式下的异步完成回调时,访问HttpContext.Current也会返回null,那么此时该怎么办呢? 答案有二种: 1. 在类型中添加一个字段来保存HttpContext的引用(异步开始前)。 2. 将HttpContext赋值给BeginXXX方法的最后一个参数(object state) 建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用。 所以在异步执行的过程会就会出现HttpContext.Current为null的情况,为了解决子线程能够得到主线程的HttpContext.Current数据,需要在异步前面就把HttpContext.Current 用HttpContext的方式存起来,然后能过参数的形式传递进去,下面看看实现的方法: 复制代码代码如下: public HttpContext context  {  get { return HttpContext.Current

    1.7K20发布于 2018-09-19
  • 来自专栏菩提树下的杨过

    温故而知新:HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期

    HttpApplication的实例,而该实例中又包含以下属性: 注1 Application -->相当于传统意义上asp时代的application对象,通常用于定义一个asp.net应用的全局变量 Context -->HttpContext class Global : System.Web.HttpApplication 再来看一下相对asp而言,新增的Context,Modules,User这三个属性 Context: Context即HttpContext 所以我们几乎可以在web应用中的任何环节,用HttpContext.Current来引用到当前的上下文实例,从HttpContext的定义上,还可以发现Context本身的属性中,又可以得到Application 回想一下: public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context WindowsAuthentication --Windows和IIS身份验证模块 User: 如果您使用过asp.net2.0内置的Membership/Role机制来进行访问认证,就会对User对象感到很熟悉,比如: if (HttpContext.Current.User.Identity.IsAuthenticated

    1K50发布于 2018-01-23
  • 来自专栏王磊的博客

    缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别

      以前写asp.net时用HttpContext.Current.Cache存缓存很好用,今天写了一个windows服务程序,HttpContext.Current.Cache存缓存的时候还好,取的时候一直报错 我们先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象。          附带的写了一个操作缓存的通用类,在应用程序中使用,如果要在asp.net中有,只需把HttpRuntime.Cache改为HttpContext.Current.Cache即可,代码如下: using temp) { result = true; } return result; } #endregion } ps:HttpContext.Current.Cache

    1.5K70发布于 2018-05-09
  • 来自专栏大内老A

    升维打击,设计之道

    public interface IFoobar { Task InvokeAsync(HttpContext httpContext); } 假设对于来源于App和小程序的请求,这个功能具有不同的处理逻辑 public class Foo : IFoobar { public Task InvokeAsync(HttpContext httpContext) => httpContext.Response.WriteAsync public class Bar : IFoobar { public Task InvokeAsync(HttpContext httpContext) => httpContext.Response.WriteAsync httpContext) => httpContext.Features.Get<IInvocationSourceFeature>()?. Source; public static void SetInvocationSource(this HttpContext httpContext, string source) => httpContext.Features.Set

    56730发布于 2019-07-02
  • 来自专栏vue

    System.Web.NullPointerException

    在.Net异步webApi中我们需要记录日志信息,需要获取客户端的ip地址,我们需要使用:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR 如果不是通过主线程获取HttpContext.Current对象将会报空指针异常(NullPointerException)。 示例代码: 1 System.Web.HttpRuntime.Cache.Insert("context", System.Web.HttpContext.Current); //异步调用,HttpContext httpContext = HttpContext.Current; 9 if (httpContext == null) 10 httpContext = HttpRuntime.Cache.Get("context") as HttpContext; 11 string userHostAddress = httpContext.Request.ServerVariables

    80910发布于 2019-06-21
  • 来自专栏跟着阿笨一起玩NET

    在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法

    解决办法: HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); HttpContext.Current.Response.Charset = "gb2312"; HttpContext.Current.Response.AddHeader (ms.ToArray()); HttpContext.Current.Response.End(); 不过上述方法在firefox上还是乱码 终极解决办法: Encoding (); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ContentEncoding (ms.ToArray()); HttpContext.Current.Response.End();

    1.8K20发布于 2018-09-19
  • 来自专栏米扑专栏

    Cookies+Session保存用户登陆状态

    (Cookies); HttpContext.Current.Session.Add("AdminID", Dt.Rows[0]["ID"].ToString()); HttpContext.Current.Session.Add (Cookies);         2、登陆状态判断 if (System.Web.HttpContext.Current.Request.Cookies["AdminInfo"] == null) System.Web.HttpContext.Current.Session["AdminID"] = System.Web.HttpContext.Current.Request.Cookies["AdminInfo "]["AdminID"].ToString(); } string AdminID=System.Web.HttpContext.Current.Session["AdminID"].ToString (); HttpContext.Current.Session.Timeout = 300; HttpContext.Current.Session["UserName"

    1.8K50发布于 2019-02-19
  • 来自专栏历史专栏

    【愚公系列】2023年02月 WMS智能仓储系统-010.全局过滤、中间件、格式化配置

    ">httpContext</param> /// <returns></returns> public Task Invoke(HttpContext httpContext) { if (httpContext.Request.Method == "OPTIONS") { httpContext.Response.Headers.Add ("Access-Control-Allow-Origin", httpContext.Request.Headers["Origin"]); httpContext.Response.Headers.Add httpContext.Response.Headers.Add("Access-Control-Max-Age", "86400"); httpContext.Response.StatusCode = "") { httpContext.Response.Headers.Add("Access-Control-Allow-Origin", httpContext.Request.Headers

    72160编辑于 2023-02-16
  • 来自专栏.NET开发那点事

    ASP.NET Core 对Controller进行单元测试

    我们编写Action的时候很多时候需要调用基类里的HttpContext,比如获取Request对象,获取Path,获取Headers等等,所以有的时候需要自己实例化HttpContext以进行测试。 = new DefaultHttpContext(); 对HttpContext.SignInAsync进行mock 我们使用ASP.NET Core框架进行登录认证的时候,往往使用HttpContext.SignInAsync 所以我们需要mock的就是IAuthenticationService接口,否者代码走到HttpContext.SignInAsync会提示找不到IAuthenticationService的service = new DefaultHttpContext(); ctrl.ControllerContext.HttpContext.RequestServices = sp.Object 进行mock HttpContext.AuthenticateAsync同样比较常用。

    2.5K30发布于 2020-06-23
领券