2

我想为我的Login控件设置一个默认值。这是我Login在模板模式下的控制:

    <td align="center" dir="rtl" style="width: 140px; padding-bottom: 20px;">
        <asp:TextBox ID="UserName" runat="server" CssClass="txtbox " Font-Size="0.8em" 
            Height="24px" Width="137px" Text="<%$ Resources:resource, username%>  " 
            Font-Names="tahoma" AutoCompleteType="FirstName" MaxLength="32"> 
        </asp:TextBox>
    </td>
</tr>
<tr>
    <td align="center" dir="rtl" style="width: 160px">
        <asp:TextBox ID="Password" runat="server"  CssClass="txtbox" Font-Size="0.8em" 
            Height="24px" Width="137px" Font-Names="tahoma" 
            TextMode="Password" MaxLength="32"   >
        </asp:TextBox> 

当我尝试将默认值设置为密码框时,它没有出现。我无法从页面后面的代码访问密码框。我该怎么办?

4

3 回答 3

5

设置属性而不是 .Text 属性,因为密码模式不存储敏感信息,这是锻炼

txtPassword.Attributes.Add("value", "defaultpassword")

但我不喜欢这种方式,因为这会将密码发送给客户端并且他们可以看到它。

更好的方法是让它为空而不是强制,稍后向用户显示一条消息,以将默认密码的密码字段保持为空白。

在检查密码文本框是否为空的代码中,传递默认密码而不是文本框值。

对于登录按钮单击事件,您背后的代码应如下所示:

 string password = (txtPassword.Text == String.Empty)? DefaultPassword : txtPassword.Text;
 AuthenticateUser(txtUserName.Text,password);
于 2012-05-30T08:11:09.533 回答
4

使用 textmode ="password" 为文本框赋值的正确方法是通过后面的代码:

textbox.Attributes.Add("value", "whatever")
于 2012-05-30T08:00:11.910 回答
2

您可能会发现很有用。讨论如何使用 TextMode=Password 设置 TextBox 的值。

于 2012-05-30T08:02:31.137 回答