首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

大家一个关于httphandler的有关问题,请大家一定帮小弟我

2012-02-09 
求助大家一个关于httphandler的问题,请大家一定帮我 - Web 开发 / Ajax我用ihttphandler来坐拦截,实现功能

求助大家一个关于httphandler的问题,请大家一定帮我 - Web 开发 / Ajax
我用ihttphandler来坐拦截,实现功能如下:
拦截目标*.aspx
一旦拦截成功,则检查session,如果session没有问题,坐允许访问,否则返回首页

问题:
一旦拦截成功,则检查session,如果session没有问题,坐允许访问

这里造成了死循环。。。。
例如登陆成功后,访问main.aspx,已经存在session,允许通过,结果又跑到httphandler里面了,一直死循环,如何在通过后不再进入httphandler里面?

 

C# code
   public void ProcessRequest(HttpContext context)        {            if (context.Request.Url.AbsolutePath.ToLower().IndexOf(".aspx") > -1)            {                string myPage = context.Request.Url.Segments[context.Request.Url.Segments.Length - 1].ToLower();                if (myPage.ToLower() != Common.DefaltPage.ToLower() && Common.SessionUserData == null)                {                    context.Response.Write("<script type=\"text/javascript\">alert(\"连接超时,请重新登陆或非正常登陆!\");</script>");                    context.Response.Write("<script type=\"text/javascript\">top.location.href='http://" + context.Request.Url.Authority + context.Request.ApplicationPath + Common.DefaltPage + "';</script>");                    context.Response.End();                }                else                {                    context.Response.Redirect(context.Request.RawUrl, true);    //死循环。。。老跑进httphandler里面来                    //这个方法可以通过,但是不支持.aspx?xxx的格式,不允许?xxxx格式                    //IHttpHandler handle = PageParser.GetCompiledPageInstance(context.Request.RawUrl, context.Request.PhysicalPath, context);                    //context.Server.Transfer(handle, true);                }            }        }


[解决办法]
在aspx页面检查session就好了。。干嘛要用ahsx。。。O__O"…

ashx进行转向又会执行你web.config里面配置的处理函数的了。不死循环都难

热点排行