对于HttpContext.Current的一点理解
string[] userInfomationSplits = HttpContext.Current.User.Identity.Name.Split(new string[] { "\\", "/" }, StringSplitOptions.None);
string netBiosName = userInfomationSplits[0];
string username = userInfomationSplits[1];
ASP.NET还为它提供了一个静态属性HttpContext.Current来访问HttpContext。这个开发人员提供了很大的便利。但是有的时候我们是不能直接访问HttpContext.Current的。
对于这个对象,我们可以尝试使用如下代码:
System.Runtime.Remoting.Messaging.CallContext.HostContext as HttpContext
也可以获取到HttpContext对象,也就是说HttpContext对象是存储在CallContext.HostContext中。
那有回到最前面的代码段,为什么提到它呢?原因在于我们不能在任何条件下都能获取到这个对象。当我在使用异步调用的时候,在方法中使用了该对象,但是我获取到的是Null。基于此种情况,我同样尝试了多线程,发现也不能获取到。根据我的理解应该是获取或设置与当前线程相关联的主机上下文。
那么我们在使用该对象的时候应该注意:必须加上对该对象的判空操作。如果其为空,通过其他方法获取所需要的。那我们如果一定要使用该对象的话。可以通过参数的形式在异步调用或者多线程时候将其作为参数传入。例如:
RunJobDelegate runFailoverDel = new RunJobDelegate(FunctionName);
runFailoverDel.BeginInvoke(HttpContext.Current, RunJobFinishedCallback, null);
对于HttpContext.Current的一点理解的更多相关文章
- HttpContext.Current:异步模式下的疑似陷阱之源
最近园子里首页有好几篇文章都是讲异步编程的,尤其是几篇讲博客园自身的异步化建设的文章,看了以后很有收获. 闲暇之余再重新查查资料温故知新学习一遍,重新认识了SynchronizationContext ...
- 为什么获取的System.Web.HttpContext.Current值为null,HttpContext对象为null时如何获取程序(站点)的根目录
ASP.NET提供了静态属性System.Web.HttpContext.Current,因此获取HttpContext对象就非常方便了.也正是因为这个原因,所以我们经常能见到直接访问System.W ...
- 缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cache. 我们再用. ...
- HttpContext.Current.Cache 和HttpRuntime.Cache的区别
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cac ...
- 我所知道的HttpContext.Current
在MVC中,HttpContext.Current是比较常见的对象,可以用它来进行Session,Cache等的保存等.但是它并不是无处不在的,下面就慢慢来揭开它的面纱. 当我们向服务端发送请求的时候 ...
- HttpContext.Current 的缺陷
了解ASP.NET的开发人员都知道它有个非常强大的对象 HttpContext,而且为了方便,ASP.NET还为它提供了一个静态属性HttpContext.Current来访问它,今天的博客打算就从H ...
- 关于web开发的一点理解
对于web开发上的一点理解 1 宏观上的一点理解 网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端 服务端通过解析报文并处理报文最后把处理的结果 ...
- HttpContext.Current.Cache 和 HttpRuntime.Cache 区别
原文地址:http://blog.csdn.net/avon520/article/details/4872704 .NET中Cache有两种调用方式:HttpContext.Current.Cach ...
- rt-thread中软件定时器组件超时界限的一点理解
@2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...
随机推荐
- mysql 树形数据,层级数据Managing Hierarchical Data in MySQL
原文:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ 引言 大多数用户都曾在数据库中处理过分层数据(hiera ...
- Unity 用C#脚本读取JSON文件数据
读取JSON文件数据网上有很多方法吗,这里采用SimpleJSON,关于SimpleJSON的介绍参考以下链接:http://wiki.unity3d.com/index.php/SimpleJSON ...
- bzoj3192
把堆顶和堆顶接起来,然后用树状数组模拟即可不得不说一开始我竟然把100000*100000当成不超出longint 而忘开int64,无药可救…… ..] of longint; now,n1,n2, ...
- COJ 0288 路径(2015升级版)
路径(2015升级版) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 WZJ在生日当天决定在他的领地举行一场马拉松比赛,他的 ...
- zoj 1760 floyd构图+Dinic最大流
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 #include <cstdio> #includ ...
- poj 4618 暴力
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4618 #include <cstdio> #include <cmath> # ...
- docs
https://www.eucalyptus.com/docs/eucalyptus/3.4/index.html [Eucalyptus PDF官方下载] http://aws.amazon.co ...
- 考研路茫茫--单词情结 - HDU 2243(AC自动机+矩阵乘法)
分析:与poj的2778差不多的,求出来所有的情况然后减去不包含的就行了,这次使用了一下kuangbin的那种自动机写法,确实还不错,因为尤是在建立矩阵的时候更加方便. 代码如下: ======= ...
- Dolls - 4160(简单二分图匹配)
题意:有一些箱子,大箱子可以套小箱子,但是必须h>h,w>w,l>l,求出来最外面能剩下几个箱子无法被嵌套. 分析:思考每个箱子都只会被别的箱子套一次,所以构成一二分匹配模型,只 ...
- poj1323
题目大意: 预测游戏 假如有MR人,包括你自己,玩一个特殊的卡片游戏,开始的时候,没有参与者接收到N张卡片,这pip卡片是一个正整数最少M*N,没有两张pip卡片是一样的,在一圈后,每个玩家选择一张卡 ...