提交后如何防止密码输入被清除?

时间:2010-06-30 08:46:54

标签: c# asp.net postback

如果您的网页上有<asp:TextBox TextMode="Password" ... /> 如何在回发后保留价值?

这是我的问题:
在我的应用程序的注册屏幕上,您需要输入密码。 然后单击“提交”,发生回发并清除密码字段,如何防止密码字段清除?

7 个答案:

答案 0 :(得分:26)

您需要在page_load或按钮点击事件中再次设置它,如下所示:

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

答案 1 :(得分:11)

您需要在回发时将密码设置回文本框。

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

答案 2 :(得分:2)

最好的方式

不要在aspx页面设置输入类型, 设置Pageload in!postback Section

中的输入类型
txtPassword.Attributes["type"] = "password";

答案 3 :(得分:1)

<input type="password" />与其他表单控件的处理方式不同,因为它存储的是用户密码的敏感信息。在服务器端,对于每个回发,密码文本框都是强制完全清除的,如果您确实需要在密码文本框中保留该值,请将其明确设置为其他人在此处提到的。 但我真的不建议这样做,因为这不是一个好习惯。

答案 4 :(得分:0)

我意识到这是一个老帖子,但希望这会帮助别人。我在用户设置屏幕上遇到了同样的问题,我在各种回发期间一直丢失密码输入。我选择的解决方案是将输入屏幕的一部分放回到更新面板中。这解决了密码被消除的问题,并没有带来安全风险。

希望这有帮助!

答案 5 :(得分:0)

使用Jquery在回发或提交后保留您的密码

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

答案 6 :(得分:0)

只需在 type="password" 中添加 asp:textbox 并删除 Textmode="Password",无需在代码隐藏中编写任何代码。