2011-10-14 11 views
7

enter image description here Tengo una página maestra con una vista de inicio de sesión, en la vista de inicio de sesión tengo un control de inicio de sesión asp. También tengo una etiqueta que NO está contenida en una vista de inicio de sesión.Buscar control en loginview

¿Cómo puedo acceder al control de cuadro de texto de nombre de usuario en el control de inicio de sesión asp y mostrar el texto en una etiqueta.

Por favor ayuda!

Este es mi código:

Login lg = (Login)LoginView1.FindControl("Login1"); 
TextBox tb = (TextBox)lg.FindControl("UserName"); 

Label2.Text = tb.Text; 

bien esto es lo que tengo que hacer: Un demandante puede desactivar su cuenta. Las cuentas de administrador y técnico están desactivadas y, si es necesario, el administrador también las reactiva. el demandante puede reactivar su cuenta en cualquier momento.

necesito validar el nombre de usuario ingresado en el cuadro de texto para verificar primero si es un usuario activo. si no, les permite reactivarlo. ¿Cómo accedo al texto desde el cuadro de texto de nombre de usuario? el resto lo puedo descifrar

+0

¿Se puede publicar el marcado para la vista de inicio de sesión? –

+0

Eso debería funcionar, ¿qué errores obtienes? –

Respuesta

9

Tal vez usted debe comprobar si el usuario está autenticado o no, debido a que el cuadro de texto está dentro de la AnonymousTemplate o se trata de una cuestión de espacio de nombres (WebControls.Login):

if (!HttpContext.Current.User.Identity.IsAuthenticated) { 
    Login lg = (WebControls.Login)LoginView1.FindControl("Login1"); 
    TextBox tb = (TextBox)lg.FindControl("UserName"); 
    Label2.Text = tb.Text; 
} 

Pero normalmente se podrían obtener el nombre de usuario/contraseña a través de la propiedades apropiadas UserName/Password del Login.

Editar: Su captura de pantalla añadida es muy pequeña pero veo que está obteniendo una InvalidCastException, por lo que mi asunción sobre el problema del espacio de nombres era correcta.

+0

ese es el error que obtengo –

+0

Supongo que tiene otra clase de "Inicio de sesión", que causa un conflicto de espacio de nombres. Quieres lanzarlo a 'WebControls.Login'. –

+0

el error es: No se puede convertir el objeto del tipo 'System.Web.UI.WebControls.Login' para escribir 'Gui.Login'. Solo tengo 1 control de inicio de sesión en toda la aplicación –