web-dev-qa-db-ja.com

送信後にパスワード入力がクリアされないようにするにはどうすればよいですか?

<asp:TextBox TextMode="Password" ... />のあるページがある場合。
ポストバック後も値を維持するにはどうすればよいですか?

これは私の問題です:
私のアプリの登録画面で、パスワードを入力する必要があります。次に、[送信]をクリックすると、ポストバックが発生し、パスワードフィールドがクリアされます。パスワードフィールドがクリアされないようにするにはどうすればよいですか?

19
user29964

Page_loadまたは次のようなボタンクリックイベントで再度設定する必要があります。

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

ポストバック時にパスワードをテキストボックスに戻す必要があります。

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

最良の方法

aspxページに入力タイプを設定しないでください。!postbackセクションのPageloadに入力タイプを設定してください

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

<input type="password" />は、ユーザーのパスワードである機密情報を格納するため、他のフォームコントロールとは異なる方法で処理されます。サーバー側では、この理由により、すべてのポストバックでパスワードテキストボックスが強制的にクリアされます。パスワードテキストボックスの値を永続化する必要がある場合は、他の人がここで述べたように明示的に設定してください。 しかし、それは良い習慣ではないので、私は本当にそうすることをお勧めしません。

Jqueryを使用して、ポストバックまたは送信後にパスワードを保持します

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

これは古い投稿だと思いますが、うまくいけば、これが他の誰かの助けになるでしょう。ユーザー設定画面でも同じ問題が発生し、さまざまなポストバック中にパスワード入力が失われ続けました。私が選んだ解決策は、更新パネルにポストバックした入力画面の一部を配置することでした。これにより、パスワードが空白になる問題が解決され、セキュリティリスクは発生しませんでした。

お役に立てれば!

0
user2308419