Отсутствующие узлы в выпадающем меню с помощью web.sitemap - PullRequest
0 голосов
/ 20 мая 2019

Я создаю выпадающее меню на сайте клиента, этим меню управляют роли (членство), авторизация web.config в некоторых папках и карта сайта. При входе в систему в качестве роли «Клиент» раскрывающееся меню пусто без узлов вообще. При входе в систему с правами администратора отображается только административная часть меню, а не узлы, которые должны быть доступны всем.

Пробовал применять разные роли к узлам. Удаление / добавление URL для узлов. Проверка, были ли удалены роли в базе данных sql.

Карта сайта:

<?xml version="1.0" encoding="utf-8" ?>
  <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"      enableLocalization="true">
  <siteMapNode url="start" roles="*">    
    <siteMapNode url="#" title="Kundecenter" >
      <siteMapNode url="~/xCustomer/Info.aspx" resourceKey="YourOrders" roles="*">
        <siteMapNode url="~/xCustomer/SalesOrders.aspx" resourceKey="CustomerSalesOrders"/>       
      </siteMapNode>     
      <siteMapNode url="~/xCustomerService/Internal/CustomerList.aspx" resourceKey="CustomerList" roles="Intern,Administrator"/>      
      <siteMapNode url="~/xAdministration/Default.aspx" resourceKey="Administration">
        <siteMapNode url="~/xAdministration/Users/Default.aspx" resourceKey="AdministrationUsers">
          <siteMapNode url="~/xAdministration/Users/AddUser.aspx" resourceKey="AdministrationUsersAddUser"/>
        </siteMapNode>
        <siteMapNode url="~/xAdministration/Basket/Default.aspx" resourceKey="AdministrationBaskets"/>       
        <siteMapNode url="~/xAdministration/xCMS/Default.aspx" resourceKey="CMS">
          <siteMapNode url="~/xAdministration/xCMS/EditCMS.aspx" resourceKey="AdministrationCMS_New"/>
        </siteMapNode>       
        <siteMapNode url="~/xAdministration/xNewsletter/Default.aspx" resourceKey="NewsletterAdmin">
          <siteMapNode url="~/xAdministration/xNewsletter/Groups.aspx" resourceKey="NewsletterAdminGroups"/>         
        </siteMapNode>
        <siteMapNode url="~/xAdministration/xReports/Default.aspx" resourceKey="Administration_Reports"/>
        <siteMapNode url="~/xAdministration/xProductCatalogue/Default.aspx" resourceKey="AdministrationProductCatalogue">
          <siteMapNode url="~/xAdministration/xProductCatalogue/setup.aspx?Page=Products" resourceKey="AdministrationProductCatalogue_Items"/>          
        </siteMapNode>
        <siteMapNode url="~/xAdministration/Logs/Default.aspx" resourceKey="Administration_Logs">
          <siteMapNode url="~/xAdministration/Logs/Log.aspx" resourceKey="Administration_Logs_ErrorLog"/>         
        </siteMapNode>
        <siteMapNode url="~/xAdministration/xProject/Default.aspx" resourceKey="Administration_Project" >
          <siteMapNode url="~/xAdministration/xProject/Employee.aspx" resourceKey="Administration_Project_Employee" />         
        </siteMapNode>
        <siteMapNode url="~/xCustomerService/xBudget/" resourceKey="CustomerService_Budget" />
      </siteMapNode>
      <siteMapNode url="~/xCustomerService/SalesRep/CustomerList.aspx" resourceKey="CustomerList">
        <siteMapNode url="~/xCustomerService/SalesRep/Quotations.aspx" resourceKey="CustomerServiceQuotations"/>       
      </siteMapNode>
      <siteMapNode url="~/xVendor/Info.aspx" resourceKey="Vendor">
        <siteMapNode url="~/xVendor/Internal/" resourceKey="Vendors"/>       
      </siteMapNode>
      <siteMapNode url="~/xReports/Default.aspx" resourceKey="Reports" />     
    </siteMapNode>
  </siteMapNode>
</siteMap>

ASPX:

<figure class="CustomerCenterFig col-sm-2 pull-right-sm">
     <asp:HyperLink ID="CustomerCenter_Link" runat="server" NavigateUrl="~/" EnableViewState="False" CssClass="Booking_Link">                           
            <asp:image CssClass="bookingImg" imageurl="~/App_Themes/Default/Images/login.png" runat="server" />                      
     </asp:HyperLink>
     <figcaption>                                
            <uc:BootstrapMenu ID="MainMenu" runat="server" DataSourceID="SiteMapMain_DS" MaximumDynamicDisplayLevels="3" CssClass="dropdown">
            </uc:BootstrapMenu>
            <asp:SiteMapDataSource ID="SiteMapMain_DS" SiteMapProvider="XmlSiteMapProvider"
                                runat="server" ShowStartingNode="false" StartingNodeUrl="start" />
     </figcaption>
</figure>

Роль администратора должна быть в состоянии видеть все узлы меню. Роль клиента должна видеть только то, что находится внутри этого узла

<siteMapNode url="~/xCustomer/Info.aspx" resourceKey="YourOrders" roles="*">
...