С# CompareValidator, использование сеанса для получения ControlToCompare с предыдущей страницы

У меня есть две страницы. Первая страница — это страница регистрации, на которой пользователь создает имя пользователя и пароль. Вторая страница — это страница входа в систему, где пользователь вводит свое имя пользователя и пароль. Я хочу использовать CompareValidator, чтобы убедиться, что имя пользователя и пароль соответствуют созданным ими учетным данным. Я подумал, что могу вызвать TextBox со страницы регистрации в своем ControlToCompare:

//TextBoxLogIn is from the first page
<asp:CompareValidator ID="CompareValidatorUserName" runat="server" ErrorMessage="Wrong User Name" ForeColor="Red" ControlToCompare="TextBoxLogIn" ControlToValidate="TextBoxUserName"></asp:CompareValidator>

Кажется, я не могу найти что-либо по этому конкретному вопросу. Есть ли у кого-нибудь предложения о том, как это можно сделать?


person Bob    schedule 15.10.2017    source источник
comment
Нет, вы не можете взять TextBoxLogIn с первой страницы. И для аутентификации вам не нужно делать что-то типа CompareValidator на стороне клиента. Вы можете проверить информацию для входа пользователя на стороне сервера, т.е. в коде позади   -  person shahsani    schedule 15.10.2017
comment
#shahsani, я понимаю, что мог бы сделать это со стороны сервера, но можно ли вызвать информацию из текстбокса с предыдущей страницы, в CompareValidator?   -  person Bob    schedule 15.10.2017
comment
Нет, вы не можете получить доступ к полю предыдущей страницы на текущей странице!   -  person shahsani    schedule 15.10.2017
comment
Если регистрация пользователя прошла успешно, то при входе в систему имя пользователя и пароль должны быть проверены по базе данных. Даже если вы можете получить доступ к управлению предыдущей страницей, не рекомендуется сравнивать с ними для проверки пользователя для входа в систему.   -  person Chetan Ranpariya    schedule 15.10.2017


Ответы (1)


Это классическое поведение http — он не имеет состояния, т. е. после отправки ответа транзакция завершается и исчезает.

Это сервер или клиент (ваш браузер), который должен отслеживать данные.

Таким образом, чтобы получить доступ к данным страницы 1 со страницы 2, сначала сохраните данные страницы 1 где-нибудь - либо в кеше браузера, либо в переменной сеанса сервера.

НО

Я бы никогда не хранил пароли где-либо, кроме серверов LDAP — даже там пароли шифруются, а затем сохраняются.

Браузер: Локальное хранилище и файлы cookie

Сервер: https://msdn.microsoft.com/en-us/library/75x4ha6s.aspx

person Shree Harsha    schedule 16.10.2017