我正在尝试做什么:我正在通过CreateUserWizard
控件创建用户,而我正在尝试将密码设置为随机生成的字母数字密码。密码TextBox
对用户(管理员)不可见。
我尝试过的解决方案:我找到密码TextBox
并尝试更改该值,但不会设置该值。我的代码如下:
CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e)
{
TextBox Password = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Password");
Password.Text = "randomAlphaNumericPassword";
}
找到密码控件,Text
属性似乎已设置,但一旦离开事件方法,它就会忘记新值并返回原来的状态。我知道这是一个实际的参考,但无法理解为什么价值不会设置。
这是我的asp标记:
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
EnableViewState="False" LoginCreatedUser="False"
oncreateduser="CreateUserWizard1_CreatedUser"
oncreatinguser="CreateUserWizard1_CreatingUser"
CompleteSuccessText="A new account has been successfully created!"
ContinueDestinationPageUrl="~/Accounts.aspx"
CreateUserButtonText="Create Account"
AutoGeneratePassword="False">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
<ContentTemplate>
...
<asp:TextBox ID="Password" runat="server" Visible="false"></asp:TextBox>
</ContentTemplate>
</asp:CreateUserWizardStep>
...
</WizardSteps>
答案 0 :(得分:0)
您的页面生命周期中是否有某些内容(例如在Page_Load上)将值设置为默认值?如果是这样,请确保您在以下代码块中执行此操作
if(!IsPostBack)
{
// set default value
}
答案 1 :(得分:0)
我明白了。值设置正确,但我认为不是因为我一直收到密码失败消息,“密码少于7个字符且必须包含至少一个非字母数字字符”,即使我的密码超过7个字符。
我的错误是假设消息中的两个条件都是真的。此情况并非如此。如果任一条件为真,则显示此消息。
我将我的web.config文件更改为最少要求0个非字母数字字符,之后一切正常。之前我没有指定任何内容,因此默认为至少1个非字母数字字符。
如果我不得不向某人表示赞赏,那么询问控件的验证码就是MStodd 。这让我更仔细地看待这个问题。
感谢大家的帮助。