マスターページ:表示/非表示サイトマップメニュー/リピータ
<ul>
<li class="first"><asp:HyperLink runat="server" ID="lnkHome"
NavigateUrl="~/Forms/Default.aspx">Home</asp:HyperLink></li>
<asp:Repeater runat="server" ID="Repeater1" DataSourceID="SiteMapDataSource1"
EnableViewState="False">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %>
</asp:HyperLink>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
Web.SiteMap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode id="SiteHome" url="~/Forms/Default.aspx" title="Home"
description="Default">
<siteMapNode id="SiteAbout" url="~/Forms/Aboutus.aspx" title="About us"
description="About Us"/>
<siteMapNode id="SiteNew" url="~/Forms/New.aspx" title="New"
description="My Sample Page"/>
</siteMapNode>
デザイン:
HOME |私たちについて|私のサンプルページ
私はASP.Net Webformsで新しく、私は最初のプロジェクトを作成しています。 リピーターを使用してページURLをナビゲートしています。 私のマスター/ Page.csコード上で私のログインアカウントに基づいて [私のサンプルページ]を非表示にする必要があります。
何かのように:
if(UserGroup="Admin")
{
//Show My Sample Page
HOME | About us | My Sample Page
}
else if(UserGroup="User1")
{ 会社 HOMEについて//隠します|私達について }他 {// ショーホームのみ HOME }
フォームのLoadでそれを行う方法?これを行うための正しい方法は、あなたのWeb.Config
でサイトマッププロバイダを定義し、属性securityTrimmingEnabled="true"
を設定することを確認している
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>'
Visible='Eval("Title") = "My Sample Page" ? this.IsAdmin.ToString() : "True"' >
<%# Eval("Title") %>
</asp:HyperLink>