1

役割に基づいてサイトマップ メニューを作成しようとしていますが、すべての役割をルート メニューに追加し、個々の役割だけを個々のメニュー項目に追加すると、常にメニュー内のすべてが取得されます。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="" title="Menu"  description="" roles="Role1;Role2;Role3">
    <siteMapNode url="~/page1.aspx" title=""  description="" roles="Role1;Role2;Role3">
    </siteMapNode>
    <siteMapNode url="~/page2.aspx" title=""  description="" roles="Role2; Role3">
    </siteMapNode>
    <siteMapNode url="~/page3.aspx" title=""  description="" roles="Role3">
    </siteMapNode>
  </siteMapNode>
</siteMap>

上記のように、ロール 1、2、3 はルート メニューを表示できます。私は Role1 の一部であるため、page1.aspx のみを表示できるようにする必要がありますが、代わりに 3 つすべてを表示できます。

それを修正する方法は?

メニューは次のように表示されます。

ページ 1 | ページ 2 | 3ページ目

したがって、Role1 のみにいる場合は、次のように表示されます。

ページ 1 |

4

3 に答える 3

1

4guysfromrolla のサイトマップ メニュー チュートリアル セクション 3 -セキュリティ トリミングを使用するためのサイト ナビゲーションの構成

サイト ナビゲーション設定は、次のパターンを使用して Web.config ファイルから構成できます。

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
  <providers>
    <add name="XmlSiteMapProvider"
      description="Default SiteMap provider."
      type="System.Web.XmlSiteMapProvider"
      siteMapFile="siteMapFileName"
      securityTrimmingEnabled="true" />
  </providers>
</siteMap>

詳細については、記事に従ってください。

于 2012-05-23T07:54:39.923 に答える
1

securityTrimmingEnabled を true に設定しましたか?

于 2012-05-23T07:46:29.653 に答える
0

はい、有効になっています。

<siteMap defaultProvider="WMSSiteMapProvider">
      <providers>
        <clear/>
        <add name="WMSSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="WMS.sitemap"/>
      </providers>
    </siteMap>
于 2012-05-23T09:50:10.207 に答える