Я работаю в WEB-проекте на основе ASP.NET и C#. Это не новый проект, я просто исправляю некоторые ошибки и делаю некоторые обновления.Как перенаправить URL, указанный после входа в систему
Веб-сайт работает, как если бы вы не вошли в систему и не указали URL-адрес в зависимости от веб-сайта, он перенаправляет вас на страницу входа. Затем, если вы входите в систему успешно, он перенаправляет вас на начальную страницу.
Например, «открытие.aspx» - это открытая страница, а «vendors.aspx» - это другая страница на веб-сайте. Если вы пишете «..../projectname/vendors.aspx» в браузере, вы перенаправляетесь на «..../projectname/login.aspx», а затем после вашего входа вы перенаправлены на «... ./projectname/opening.aspx "
Теперь моя цель - перенаправить пользователя на URL-адрес, который он написал, в этом примере« ..../projectname/vendors.aspx »после успешного входа в систему. Я написал код, чтобы перейти на предыдущую страницу, и после того, как логин переадресует пользователя на эту страницу. Однако я не могу обнаружить страницу, которую пользователь попытался ввести в первый раз. Я не уверен, что проект отправляет пользователя на страницу входа с некоторыми кодами, написанными предыдущими программистами, или если это автоматический материал asp.net о странице по умолчанию. Во время отладки я всегда вижу запрашиваемую страницу в качестве страницы входа, хотя я пишу еще один URL-адрес страницы в браузере.
Что я ищу - это место, где запрашиваемая страница была изменена на страницу входа вместо URL-адреса, который я написал. Это автоматический материал, или я должен искать его в коде? Если я должен искать его в коде, где искать?
Примечание. Проект основан на трехмерной архитектуре с WEB, BUS, DAL и COM-слоями, а WEB-страницы используют пользовательские элементы управления на каждой странице вместо входа и по умолчанию.
Во-первых, спасибо за ответ. Теперь у меня есть класс типа «BasePage», который каждая страница наследует. Поэтому, хотя я ввожу URL-адрес, тогда Request.QueryString ["ReturnUrl"] в Page_Init в этом классе должен вернуть URL-адрес, который я написал. Однако он возвращает null. Любая идея, чтобы проверить это? –
ну, скорее всего, только на странице входа, так что как вы справитесь с этим, нужно будет там. Поскольку кажется, что вы выполняете несколько переадресаций, вам нужно будет сохранить исходное значение ReturnUrl где-то вроде состояния сеанса или в строке запроса. Я предполагаю, что у вас есть что-то вроде ... FormsAuthentication.RedirectFromLoginPage', вы захотите справиться с этим сами, если не можете использовать состояние сеанса и просто выполните что-то вроде Response.Redirect («Opening.aspx? Source = "+ HttpUtility.UrlEncode (Request.QueryString [" ReturnUrl "]))' –
Ouw, я только что заметил, что перенаправление сделано на главной странице, и я думаю, что теперь смогу справиться с этим. Кстати, код, который вы написали, не сработал, но вместо этого я использовал Request.Path, а затем устранил некоторые его части. У меня есть еще один вопрос: Request.Path не возвращает часть строки запроса? –