将菜单项绑定到站点地图

时间:2010-05-25 11:55:05

标签: .net asp.net-membership sitemap

这让我疯了。

我有一个导航菜单我希望根据用户角色显示(using.net会员资格)经过几个小时和头痛(从我的头撞在桌子上)我想知道是否有人可以指出我的错误方式。

页:

<body>
    <form runat="server">
    <div class="page">
        <div class="header">
            <div class="loginDisplay">
                <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
                    <AnonymousTemplate>
                        <a href="~/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> 
                    </AnonymousTemplate>
                    <LoggedInTemplate>
                        Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
                        [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Open/Close.aspx"/> ]
                    </LoggedInTemplate>
                </asp:LoginView>
            </div>
            <div class="clear hideSkiplink">
                <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" 
                    IncludeStyleBlock="False" Orientation="Horizontal"
                DataSourceID="AugustSiteMap" />
                <asp:SiteMapDataSource ID="AugustSiteMap" runat="server" ShowStartingNode="false"/>
            </div>
        </div>

网站地图:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/Default.aspx" title="Home"  description="Home">

    <siteMapNode title="Open Pages" description="Open Pages">
      <siteMapNode url="~/Open/Login.aspx" title="Login Page" description="Login Page" roles="*"/>
      <siteMapNode url="~/Open/Close.aspx" title="" description="" roles="*"/>

    </siteMapNode>

    <siteMapNode title="Logged In Open Pages" description="Logged In Open Pages">
      <siteMapNode url="~/Landing.aspx" title="Landing Page" description="Landing Page" roles="*"/>
      <siteMapNode url="~/ContactUs.aspx" title="Contact Us" description="Contact Us" roles="*"/>

    </siteMapNode>


    <siteMapNode title="Restricted Pages" description="Resticted Pages">
      <siteMapNode url="~/Restricted/ProductSearch.aspx" title=" Product Search" description=" Product Search" roles="*"/>
      <siteMapNode url="~/Restricted/ReportOutput.aspx" title="Report Output" description="Report Output" roles="Admin"/>
    </siteMapNode>



  </siteMapNode>

</siteMap>

Webconfig:

<roleManager enabled="true" />
      <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
        <providers>

         <add name="XmlSiteMapProvider"
            description="AugustSiteMap"
            type="System.Web.XmlSiteMapProvider "
            siteMapFile="AugustSiteMap.sitemap"
            securityTrimmingEnabled="true" />
        </providers>
      </siteMap>

如何确保用户登录后,登陆页面上会显示相应的菜单项?

问题在于,目前不会以任何方式,形状或形式创建导航菜单。

请原谅我的无知。所有这一切仍然是新的,我目前的“试错法”让我今天早上达到了自杀水平!

1 个答案:

答案 0 :(得分:0)

没关系 - 对于那些跟随的人:这不是正确的答案。

尝试使用DataSource属性而不是DataSourceId

e.g。

DataSource="AugustSiteMap"

<击>