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á.

Anuncios

Autor: Israel Muñoz

Soy desarrollador de software, principalmente dedicado a desarrollo de aplicaciones web. Especializado en .NET full-stack, además de tecnologías front-end HTML, CSS y JavaScript. A ratos, profesor de materias de informática. Me gusta mucho todo lo que tiene que ver con las tecnologías nuevas para desarrollo web, y el diseño de sitios y aplicaciones.

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

Responder

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. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s