Как предотвратить ввод пароля от очистки после отправки?

Если у вас есть страница с <asp:TextBox TextMode="Password" ... />.
Как вы можете сохранить значение после обратной передачи?

Это моя проблема:
На экране регистрации моего приложения вам нужно ввести пароль. Затем вы нажимаете submit, происходит обратная передача и поля пароля очищаются, как я могу предотвратить очистку поля пароля?

6 ответов


вам нужно установить его снова в page_load или в событии нажатия кнопки, как это:

 string Password = txtPassword.Text;
txtPassword.Attributes.Add("value", Password);

вам нужно вернуть пароль в текстовое поле при обратной передаче.

txtBox.Attributes["value"] = txtBox.Text;

лучший способ

не устанавливайте тип ввода на странице aspx, Установите тип ввода в Pageload in !раздел обратной передачи

txtPassword.Attributes["type"] = "password";

<input type="password" /> обрабатывается иначе, чем другие элементы управления формы, так как он хранит конфиденциальную информацию, которая является паролем пользователя. На стороне сервера для каждой обратной передачи текстовое поле пароля полностью очищается по этой причине, если вам действительно нужно сохранить значение в текстовом поле пароля, установите его явно, как упоминалось здесь. но я действительно не рекомендую делать это, так как это не очень хорошая практика.


Я понимаю, что это старый пост, но, надеюсь, это поможет кто-то другой. У меня была та же проблема на экране настройки пользователя, в результате чего я продолжал терять ввод пароля во время различных обратных передач. Решение, которое я выбрал, состояло в том, чтобы поместить часть экрана ввода, который был отправлен обратно в updatepanel. Это решило проблему отключения пароля и не представляло угрозы безопасности.

надеюсь, что это помогает!


используйте Jquery для сохранения пароля после обратной передачи или отправки

$(function () {
$('.txtPassword').val("<%=txtPassword.Value%>");
});