ASP.NET Evitar borrado de password en PostBack

Cuando una página web hace PostBack, los controles de tipo password siempre son limpiados. Lo cual puede ser muy molesto, por ejemplo, si estamos queriendo registrar usuarios, y por algún problema de validación, o un error en el funcionamiento, la página se recarga con el password vacío.

<form id="aspnet" runat="server">
    <asp:Label runat="server" AssociatedControlID="nombre" Text="Nombre:" />
    <asp:TextBox ID="nombre" runat="server" /><br />
    <asp:Label runat="server" AssociatedControlID="password1" Text="Contraseña" />
    <asp:TextBox ID="password1" runat="server" TextMode="Password" /><br />
    <asp:Label runat="server" AssociatedControlID="password2" Text="Confirmar contraseña" />
    <asp:TextBox ID="password2" runat="server" TextMode="Password" /><br />
    <asp:Button ID="guardar" runat="server" Text="Guardar" />
</form>

Existe un truco muy sencillo para evitar que los campos de password sean borrados al recargarse la página. La propiedad Text de TextBox es la que se pierde en la recarga, pero si recordamos que este control se convierte en un elemento input de HTML, podemos alterar directamente el atributo value de éste elemento.

protected void guardar_Click(object sender, EventArgs e) {
    password1.Attributes.Add("value", password1.Text);
    password2.Attributes.Add("value", password2.Text);

    // Código para guardar al usuario
}

Al recargarse la página, aunque la propiedad Text del TextBox esté vacía, el atributo value del input no lo estará.

Anuncio publicitario

3 comentarios sobre “ASP.NET Evitar borrado de password en PostBack

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s