2012-02-05 21 views
6

Creo una página maestra con una barra de navegación. Hice la página de índice como una página de inicio de sesión, así que uso el control de inicio de sesión en index.aspx que está registrado en la página maestra.¿Cómo puedo ocultar el menú de la página maestra hasta que el usuario inicie sesión en asp.net

Ahora mi pregunta es ¿cómo puedo ocultar la barra de navegación que se encuentra en la página principal hasta que el usuario haga de inicio de sesión, después de que el usuario que realiza conexión exitosa la barra de navegación debe aparecer

Respuesta

7

Uso esto en la página maestra (código C#)

<% if (HttpContext.Current.User.Identity.IsAuthenticated) { %> 

<div>navigation html when is authenticated</div> 

<% } else { %> 

<div>navigation html when is NOT authenticated</div> 

<% } %> 
+1

muchas gracias Puedo usar su idea, pero me escriben dentro de la instrucción if el siguiente NavigationMenu.Items.Clear(); –

3

en formularios web puede utilizar la LoginView control para mostrar contenido diferente según el nivel de autenticación del usuario:

<asp:LoginView ID="LoginView1" Runat="server"> 
    <LoggedInTemplate> 
    <div>Navigation Bar</div> 
    </LoggedInTemplate> 
    <AnonymousTemplate> 
    <div>Unauthenticated content</div> 
    </AnonymousTemplate> 
</asp:LoginView> 
1

Si está utilizando el control del menú Asp.net, coloque el código siguiente en carga de la página:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Menu1.Visible = User.Identity.IsAuthenticated; 
    } 

Dicho de otro modo la barra de navegación en un marcador de posición y mostrar/ocultar el marcador de posición.

+0

gracias utilicé NavigationMenu.Items.Clear() dentro de la declaración if. –

3
protected void Page_Load(object sender, EventArgs e)  
{   
     String path = HttpContext.Current.Request.Url.AbsolutePath; 

     if (path == "/login.aspx") 
     { 
      Menu1.Visible = false; 
     }  
    } 
Cuestiones relacionadas