server.Transfer().............执行子请求错误 求教各位大虾啊~~~~
最近尝试用 ihttpHandler 实现请求拦截,验证权限,但是总是出错没有成功。
思路:请求————ihttpHandler(验证用户角色,并确定有没有权限访问要访问的页面)————验证成功在服务器转发请求到对应的页面
处理请求的代码如上,但是通过验证后的跳转代码总是在报错server.Transfer(request.Path, true);报执行子请求时错误
我在网上找了很多类似的问题,但是都没有解决。
用这个代码可以不报错,但是这样就会丢失请求数据,时受保护的页面都异常:连按钮都没有反应。
求教大虾们了~~~~怎么解决这个问题!!!!
思路:请求————ihttpHandler(验证用户角色,并确定有没有权限访问要访问的页面)————验证成功在服务器转发请求到对应的页面
public void ProcessRequest(HttpContext context)
{
HttpSessionState session = context.Session;
HttpResponse response = context.Response;
HttpServerUtility server = context.Server;
HttpRequest request= context.Request;
if (session[CommonConstant.USER_NAME] == null)
{
response.Redirect("~/login.aspx");
}
String userName = session[CommonConstant.USER_NAME].ToString();
String userRole = session[CommonConstant.USER_ROLE].ToString();
if (!userRole.Equals(CommonConstant.STUDENT))
{
ExceptionReturnObject ero = new ExceptionReturnObject();
ero.ExceptionMsg = "您没有当前操作的权限,请联系管理员";
ero.ExceptionNum = CommonConstant.RIGHTEXCEPTION;
ExceptionHandler.exceptionHandler(ero, session, response);
}
server.Transfer(request.Path, true);
}
处理请求的代码如上,但是通过验证后的跳转代码总是在报错server.Transfer(request.Path, true);报执行子请求时错误
我在网上找了很多类似的问题,但是都没有解决。
context.Server.Transfer(BuildManager.CreateInstanceFromVirtualPath(context.Request.Path, typeof(Page)) as IHttpHandler, true);用这个代码可以不报错,但是这样就会丢失请求数据,时受保护的页面都异常:连按钮都没有反应。
求教大虾们了~~~~怎么解决这个问题!!!!
...全文
相关推荐
Response.Redirect与Server.Transfer的区别
当调用Server.Transfer方法时,服务器停止当前页面的执行并立即开始执行指定的另一个页面,但不会向浏览器发送新的HTTP请求。这意味着地址栏中的URL不会改变,用户无法看到实际跳转的过程。
asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
"ASP.NET页面转向的三种方法:Response.Redirect、Server.Transfer和Server.Execute有各自的特点和适用场景。了解它们之间的区别对于优化应用程序性能和用
file_transfer_server.zip_file server
file_transfer_server.zip_file server" 提供了一个关于服务器端实现的详细资料,这通常涉及到编程和网络技术。
HTTP错误代码整理+HTTP请求
400错误的请求表示请求无法被服务器理解;401访问被拒绝,表示需要身份验证;403禁止访问,表示服务器理解了请求,但拒绝执行;404未找到,表明请求的资源不存在。
Data Transfer Workbench
批量处理与调度:DTW支持批量数据处理,并可以设置定时任务,自动执行数据迁移,尤其适用于需要定期同步的数据环境。6.


