【问题标题】:if child of server.execute calls Server.Transfer or handler.ProcessRequest or Response.Redirect, what happens?如果 server.execute 的子级调用 Server.Transfer 或 handler.ProcessRequest 或 Response.Redirect,会发生什么?
【发布时间】:2010-11-19 18:18:37
【问题描述】:

我正在尝试运行(在 try 块中,没有 catch 而是 finally)

HttpContext.Current.Server.Execute(child1, tw, true);

子页面尝试运行以下之一的位置:

context.Response.Redirect(child2.uri.ToString());
handler.ProcessRequest(context); //context has had items added to update querystring
context.Server.Transfer(child2.uri.ToString());

我可以期望控制权返回到我的原始页面吗?我想我可能会 - 一旦代码到达(例如)Server.Transfer,我发现自己回到了 finally 块中的原始父页面(但我的 Server.Execute 之后的任何代码都被跳过了)。

请注意,如果我只是重定向到第一个子页面,它就可以正常工作,但是我必须传递 cookie 以越过登录障碍(我试图用 Server.Execute 绕过)。

这些嵌套执行、传输和重定向的预期行为是什么?

【问题讨论】:

    标签: asp.net response.redirect server.transfer


    【解决方案1】:

    回答我自己的问题:

    是的。一旦子请求完成处理,Execute 最终将收回控制权 - Server.Transfer 的情况将传输子请求而不是父请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多