现在我有一个带有3个步骤的asp:向导。
在第三步点击完成按钮后,我想创建用户并发送表单。我有这个写的逻辑,但我唯一的问题是当向导按下一个按钮,发生PostBack和我的密码字段时:
<asp:TextBox ID="txtPassword" TextMode="Password" Width="70%" runat="server" />
不保留其价值。
您认为对我来说,克服这个问题最安全,最实用的方法是什么?
答案 0 :(得分:2)
我可能会开发一个表示将由向导创建的数据的类:
public class WizardForm
{
public User NewUser {get;set;}
public Form FormToEmail {get;set;}
}
然后在通过向导的每一步中,我都会更新这个类并将其存储在会话中:
WizardForm form = Session["WizardForm"] as WizardForm;
if (form == null)
{
form = new WizardForm();
Session["WizardForm"] = form;
}
form.User.Password = txtPassword.Text; // etc
或者您可以将密码存储在Session中并稍后检索:
Session["WizardPassword"] = txtPassword.Text;
string password = Session["WizardPassword"].ToString();
答案 1 :(得分:2)
我认为你不需要创建任何类;只需在page_load
方法中使用以下代码行:
YourTextBoxName.Attributes["value"] = YourTextBoxName.Text ;
这应该可以解决这个问题。
答案 2 :(得分:1)
在密码模式下,这个beavior内置于asp.net TextBox控件。如果您想要不同的行为,您可以创建自己的密码服务器控件或使用runat =“server”的普通HTML输入控件。您还可以在用户进入下一个向导步骤时保存密码,然后显示占位符而不是文本框。为了更改或编辑密码,用户必须返回相关的向导步骤。