После входа отправить пользователя обратно на страницу, где он был?

#.net #asp.net #asp.net-membership #forms-authentication #login-control

#.net #asp.net #asp.net-членство #формы-аутентификация #вход-контроль

Вопрос:

Я использую элемент управления входом, и кнопка входа находится на главной странице.

У меня есть страница (т. Е. page1.aspx), куда пользователь может зайти как с логином, так и без логина.

Если пользователь находится на этой странице 1.aspx и нажимает кнопку входа, после успешного входа в систему я хочу, чтобы система вернула пользователя на страницу 1.aspx.

Но теперь после успешного входа в систему система отправляет пользователя на страницу по умолчанию.aspx.

Как я могу этого добиться? любая помощь?

Ответ №1:

Проверка подлинности формы.Метод RedirectFromLoginPage (строка, логическое значение)

Перенаправляет прошедшего проверку подлинности пользователя обратно на первоначально запрошенный URL или URL по умолчанию.

Ответ №2:

Вам нужно передать URL в качестве параметра GET на страницу входа в систему и после успешного входа перенаправить страницу на URL, переданный в качестве параметра GET.

Например:

News.aspx:

 <a href="Login.aspx?BackTo=News.aspx">Login</a>
  

Login.aspx:

 if (loginSuccess) {
   Response.Redirect(Request.QueryString["BackTo"] ?? "Default.aspx");
}
  

Ответ №3:

На вашей странице login.aspx при успешном входе в систему вам нужно перенаправить браузер с помощью

 <% Response.Redirect("page1.aspx", true) %>
  

если вы отправите дополнительную информацию в форме, для которой указана страница, на которой пользователь находится в данный момент, вы можете использовать перенаправление, чтобы вернуть их на эту страницу.

Комментарии:

1. ну, если я использую <% ответа. Перенаправление («страница 1.aspx», true) %>, оно вернется на страницу 1.aspx. Но у меня есть несколько других страниц, подобных этой (т. е. страница 2.aspx, страница 3.aspx). в этих случаях он всегда будет возвращаться к page1.aspx. Но я не знаю, с какой страницы пользователь нажмет кнопку входа. Я хочу, чтобы на какой бы странице пользователь ни находился, после успешного входа в систему он перенаправлял пользователя на страницу, на которой пользователь был.

2. я хотел сказать, что если вы замените page1.aspx на страницу, на которую вы хотите их вернуть, отправленную как скрытый элемент в форме, тогда она перенаправит обратно на указанную страницу. Извините, если я не понял.

3. Да, я понял. Но чего я не могу понять, так это ссылки для входа в masterpage. как я могу отправить URL текущей страницы на страницу входа??

4. Как вы сейчас выполняете вход в систему? если вы используете форму, вы могли бы использовать скрытый элемент в форме со значением страницы.

Ответ №4:

 <a href="Login.aspx?BackTo=News.aspx?BackTo=<%= Request.RawUrl() %>">Login</a>