2011-06-19 36 views
1

マスターページ表示/非表示サイトマップメニュー/リピータ

<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> 

答えて

1

:よろしくで おかげ..

0

のようなものを試してみてください。あなたのFormsフォルダで

<siteMap defaultProvider="MySiteMap"> 
<providers> 
    <clear/> 
    <add 
    name="MySiteMap" 
    type="System.Web.XmlSiteMapProvider" 
    securityTrimmingEnabled="true" 
    siteMapFile="~/Web.SiteMap" /> 
</providers> 
</siteMap> 

Web.Configファイルを作成し、以下を含む

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
    <location path="New.aspx"> 
    <system.web> 
     <authorization>  
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 

今ASP.Netは、ユーザーにあなたのサイトマップの一部上映の世話をします。 例:この場合、認証されていないユーザーからMy Sample Pageページが非表示になります。