我正在使用HttpContext.Current.User在收到请求时存储有关客户端的一些数据。
恐怕当HttpContext.Current意外为空并且我试图从HttpContext.Current.User中提取数据时,我可能会遇到NullObjectReferenceException
docomentation说有关HttpContext.Current,它是:
获取或设置当前HTTP请求的HttpContext对象。
在什么情况下HttpContext.Current可以设置为null?
答案 0 :(得分:4)
您的scope is not part of a Request是null
。
示例包括:
Application_Start
如果您在请求中执行这些操作,那应该没事。
如果您正在使用后台线程,或者钩住了不具有Request上下文的aspnet的其他部分,则静态HttpContext
可能不适合您。还有其他的请求和响应上下文以及控制器上下文可能会更好。您还应该consider injecting这些things using a Container,或者在不知道执行上下文的情况下,wrap getting the user in an interface,以便可以更清晰地处理这些上下文方案。
This world is different in aspnet Core,所以我假设您是指aspnet Framework。