如果server.execute的子进程调用Server.Transfer或handler.ProcessRequest或Response.Redirect,会发生什么?

时间:2010-11-19 18:18:37

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

我正在尝试运行(在try块中,没有捕获但是最终)

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)。

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

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

是。一旦孩子请求完成处理,执行将最终取回控制权 - Server.Transfer的情况将转移子请求但不转移父请求。