2012-02-05 21 views
6

Tôi tạo một trang chính với thanh điều hướng. Tôi đã tạo trang chỉ mục làm trang đăng nhập, vì vậy tôi sử dụng điều khiển đăng nhập trong index.aspx được đăng ký dưới trang chính.Làm cách nào để ẩn menu của trang Chính cho đến khi người dùng đăng nhập trong asp.net

Bây giờ câu hỏi của tôi là làm thế nào tôi có thể ẩn thanh điều hướng mà là ở trang chủ cho đến khi người sử dụng làm đăng nhập, sau khi người dùng thực hiện đăng nhập thành công thanh điều hướng sẽ xuất hiện

Trả lời

7

Sử dụng này trong Master Page (mã C#)

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

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

<% } else { %> 

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

<% } %> 
+1

thanks a lot tôi sử dụng ý tưởng của bạn, nhưng tôi viết bên trong câu lệnh if như sau NavigationMenu.Items.Clear(); –

3

Trong webforms bạn có thể sử dụng LoginView control để hiển thị nội dung khác nhau tùy thuộc vào tình trạng xác thực của người dùng:

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

Nếu bạn đang sử dụng điều khiển trình đơn Asp.net, hãy đặt mã sau vào tải trang:

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

Nếu không, hãy đặt thanh điều hướng của bạn vào trình giữ chỗ và hiển thị/ẩn trình giữ chỗ.

+0

cảm ơn tôi đã sử dụng NavigationMenu.Items.Clear() trong câu lệnh if. –

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

     if (path == "/login.aspx") 
     { 
      Menu1.Visible = false; 
     }  
    } 
Các vấn đề liên quan