если дочерний элемент server.execute вызывает Server.Transfer или handler.ProcessRequest или Response.Redirect, что происходит? - PullRequest
0 голосов
/ 19 ноября 2010

Я пытаюсь запустить (в блоке try, без перехвата, кроме 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 был пропущен).

Как примечание, первая дочерняя страница работает нормально, если я просто перенаправляю на нее, но затем мне нужно передать куки, чтобы преодолеть барьер входа (который я пытаюсь обойти с помощью Server.Execute).

Чтотакое ожидаемое поведение этих вложенных выполнений, передач и перенаправлений?

1 Ответ

0 голосов
/ 23 июня 2011

Отвечая на мой вопрос:

Да.Выполнение в конечном итоге вернет контроль, как только дочерние запросы закончат обработку - регистр Server.Transfer передаст дочерний запрос, но не родительский.

...