我有一个自定义安全主体对象,我在当前线程的global.asax中设置,一切都很好,通常没有问题.
但是,我只是通过让页面提供图像来添加动态图像功能,每当加载动态图像页面时,Global.asax中的System.Web.HttpContext.Current.Session为null,这会阻止我设置安全性从那时起,委托人就像正常和级联问题一样.
通常,在用户登录的开始会话期间,global.asax中的会话只有一次,之后它始终可用于此单一异常.
当浏览器遇到原始页面中的图像时,即加载动态图像页面
我猜这是浏览器在没有发送一些凭据的情况下请求该页面的一些方面?
任何帮助将不胜感激.
约翰,
我假设您正在为处理程序使用ashx处理程序.如果是这样,请确保从IRequiresSessionState派生,例如:
public class Images : IHttpHandler, System.Web.SessionState.IRequiresSessionState { }
如果您没有使用ashx,您可以通过动态图像页面描述您的意思吗?
玩笑
在Global.asax.cs中,Session_Start()和Session_End()需要使用"this.Session"!! 原因是HttpContext仅在有正在处理的请求时可用.这就是你在HttpContext.Current.Session上获得NULL的原因!
来自Microsoft网站:"HttpContext类:封装有关单个HTTP请求的所有HTTP特定信息."
但是不要感觉不好......我也为这个感到沮丧!:)