繁体   English   中英

如何在用户登录asp.net之前隐藏Master页面的菜单

[英]How can I hide the menu of Master page until the user do login in asp.net

我创建了一个带导航栏的母版页。 我将索引页面作为登录页面,因此我使用在主页面下注册的index.aspx中的登录控件。

现在我的问题是如何在用户登录之前隐藏主页中的导航栏,用户成功登录后导航栏应该出现

在母版页中使用它(C#代码)

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

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

<% } else { %>

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

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

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

在webforms中,您可以使用LoginView控件根据用户的身份验证状态显示不同的内容:

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

如果您使用的是Asp.net菜单控件,请将以下代码放在页面加载中:

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

否则,将导航栏放在占位符中并显示/隐藏占位符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM