Jas*_*Cav 5 c# asp.net master-pages
我创建了一个母版页(Site.master),其中包含显示页眉,页脚和侧栏的代码.它工作得非常好,但我无法弄清楚如何动态选择标题.
基本上,有两种可能的标题选项.如果用户未登录,我希望他们看到登录框和用于恢复密码的链接等.如果他们已登录,他们将看到注销链接,以及有关其帐户的一些信息(类似于SO实际上是有效的).
是否有可能让Site.master检查并使用我想要的任何标头,具体取决于用户的登录状态?我非常坚持从哪里开始(我想可能在母版页的代码隐藏中进行一些检查)所以任何帮助都会受到赞赏.
您应该考虑使用内置控件LoginView(MSDN)。它专门设计用于为经过身份验证的用户和匿名用户提供多个模板(视图)。
这是一种最佳实践方法。您可以为登录和匿名用户定义页眉/页脚等,并使用适当的登录/注销按钮、用户信息等。
这是一个非常基本的示例:
<asp:LoginView id="LoginView1" runat="server">
<AnonymousTemplate>
<asp:HyperLink ID="lnkLogin" runat="server" NavigateUrl="~/Login.aspx" Text="Login"/>
</AnonymousTemplate>
<LoggedInTemplate>
You are logged in as: <asp:LoginName id="lnCurrentUser" runat="server" />.
</LoggedInTemplate>
</asp:LoginView>
Run Code Online (Sandbox Code Playgroud)
.NET 框架将处理其余的事情,并显示正确的模板,无需任何额外的代码。如果您最终在应用程序中使用多个角色,您可以更进一步并为这些角色定义模板(管理员与普通用户等)
基于上述问题的完美解决方案:如何:向匿名用户和登录用户显示不同的信息