大家一个关于httphandler的有关问题,请大家一定帮小弟我
求助大家一个关于httphandler的问题,请大家一定帮我 - Web 开发 / Ajax
我用ihttphandler来坐拦截,实现功能如下:
拦截目标*.aspx
一旦拦截成功,则检查session,如果session没有问题,坐允许访问,否则返回首页
问题:
一旦拦截成功,则检查session,如果session没有问题,坐允许访问
这里造成了死循环。。。。
例如登陆成功后,访问main.aspx,已经存在session,允许通过,结果又跑到httphandler里面了,一直死循环,如何在通过后不再进入httphandler里面?
------解决方案--------------------
在aspx页面检查session就好了。。干嘛要用ahsx。。。O__O"…
ashx进行转向又会执行你web.config里面配置的处理函数的了。不死循环都难
我用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里面配置的处理函数的了。不死循环都难