2012-02-05 94 views
6

我使用導航欄創建母版頁。我將索引頁作爲登錄頁面,因此我在index.aspx中使用登錄控件,該索引在母版頁下注冊。如何隱藏母版頁的菜單,直到用戶在asp.net登錄

現在我的問題是我怎麼能隱藏導航欄,這是在母版頁,直到用戶做登錄時,用戶做成功登錄後,在導航欄上應該出現

回答

7

使用此在母版頁(C#代碼)

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

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

<% } else { %> 

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

<% } %> 
+1

非常感謝我用你的想法,但我寫的if語句下面 NavigationMenu.Items.Clear()內; – 2012-02-05 13:48:45

3

在網絡表單,您可以使用LoginView control根據用戶的認證狀態顯示不同的內容:

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

如果您使用的是Asp.net菜單控制,把下面的代碼在頁面加載:

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

否則把你的導航條中的佔位符和顯示/隱藏佔位符。

+0

謝謝我在if語句中使用了NavigationMenu.Items.Clear()。 – 2012-02-05 13:52:16

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

     if (path == "/login.aspx") 
     { 
      Menu1.Visible = false; 
     }  
    } 
相關問題