Делаю Server.Transfer("/MyDir/MyPage.aspx"). В MyDir лежит web.config кот. запрещает смотреть страницы анонимам.
Но все проходит гладко. Если просто обратиться к странице, то будет как и положено — редирект на Login страницу.
Что, собственно, происходит? Что я упустил?
Server.Transfer и безопасность не дружат?
От:
Аноним
Дата:
18.02.05 09:11
Оценка:
Упустил процесс авторизации при запросе. Server.Transfer просто передает управление на другую страницу, но второй запрос не порождает Если сделаешь Response.Redirect(), то все будет нормально. Либо руками сам проверяй права пользователя.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, <Аноним>, Вы писали:
А>>Делаю Server.Transfer("/MyDir/MyPage.aspx").
G>Делайте Response.Redirect, Server.Transfer просто выполняет страницу в текущем контексте.
А при редиректе Context.Items сохраняются?
Re[2]: Server.Transfer и безопасность не дружат?
От:
Аноним
Дата:
18.02.05 09:36
Оценка:
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, <Аноним>, Вы писали:
А>>Делаю Server.Transfer("/MyDir/MyPage.aspx").
G>Делайте Response.Redirect, Server.Transfer просто выполняет страницу в текущем контексте.
Здравствуйте, <Аноним>, Вы писали:
А>>>Делаю Server.Transfer("/MyDir/MyPage.aspx").
G>>Делайте Response.Redirect, Server.Transfer просто выполняет страницу в текущем контексте. А>А при редиректе Context.Items сохраняются?
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, <Аноним>, Вы писали:
А>>>>Делаю Server.Transfer("/MyDir/MyPage.aspx").
G>>>Делайте Response.Redirect, Server.Transfer просто выполняет страницу в текущем контексте. А>>А при редиректе Context.Items сохраняются?
G>Нет.
=> еще один повод думать, что реализация Front Controller в ASP.NET невозможна...
Здравствуйте, <Аноним>, Вы писали:
G>>Делайте Response.Redirect, Server.Transfer просто выполняет страницу в текущем контексте.
А>Я всегда думал, что выполняет Server.Execute
msdn:
HttpServerUtility.Transfer Method — Terminates execution of the current page and begins execution of a new page for the current request.
HttpServerUtility.Execute Method — Executes the current request using another page.