2011-06-19 51 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> 

設計:

首頁|關於我們|我的樣品頁


我是新的ASP.Net Webforms和我創建我的第一個項目。 我正在使用Repeater導航頁面的URL。 在我的主/ Page.cs代碼後面我需要隱藏 [我的示例頁面]基於我的登錄帳戶。

類似:

if(UserGroup="Admin") 
{ 
    //Show My Sample Page 
    HOME | About us | My Sample Page 
} 
else if(UserGroup="User1") 

{// 隱藏關於我們 首頁|關於我們 } 其他 {// 顯示家裏只有 HOME }

如何做到這一點的形式加載? 感謝問候..

回答

1

正確的方法做,這是你的Web.Config定義站點地圖提供者,並確保您設置的屬性securityTrimmingEnabled="true"

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

在你Forms文件夾中創建一個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頁面與未經認證的用戶。

0

試着這麼做:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' 
    Visible='Eval("Title") = "My Sample Page" ? this.IsAdmin.ToString() : "True"' > 
    <%# Eval("Title") %> 
</asp:HyperLink>