0

すべてのリンクが管理者ロールに表示され、限られた量がユーザーロールに表示されるサイトをセットアップしようとしています。

ここに私のサイトマップがあります:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode >
    <siteMapNode url="fake1.aspx" title="Example A"  description="Example" roles="user">
      <siteMapNode url="fake2.aspx" title="Example 1"  description="Example" roles="user" />
      <siteMapNode url="fake3.aspx" title="Example 2"  description="Example" roles="user" />
      <siteMapNode url="fake4.aspx" title="Example 3"  description="Example" roles="user" />
    </siteMapNode>
    <siteMapNode url="fake5.aspx" title="Example B"  description="Example" roles="user">
      <siteMapNode url="fake6.aspx" title="Example 1"  description="Example" roles="user" />
      <siteMapNode url="fake7.aspx" title="Example 2"  description="Example" roles="user" />
      <siteMapNode url="fake8.aspx" title="Example 3"  description="Example" roles="user" />
    </siteMapNode>
    <siteMapNode url="fake9.aspx" title="Example C"  description="Example" roles="user">
      <siteMapNode url="fake10.aspx" title="Example 1"  description="Example" roles="user" />
      <siteMapNode url="fake11.aspx" title="Example 2"  description="Example" roles="user" />
      <siteMapNode url="fake12.aspx" title="Example 3"  description="Example" roles="user"/>
    </siteMapNode>
    <siteMapNode url="fake13.aspx" title="Example D"  description="Example" roles="admin">
      <siteMapNode url="fake14.aspx" title="Example 1"  description="Example" roles="admin" />
      <siteMapNode url="fake15.aspx" title="Example 2"  description="Example" roles="admin" />
      <siteMapNode url="fake16.aspx" title="Example 3"  description="Example" roles="admin" />
    </siteMapNode>
  </siteMapNode>
</siteMap>

これが私のメニューサーバーコントロールです:

<div id="menuBar">
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2"
        Orientation="Horizontal" >
    </asp:Menu>
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</div>

そして、これが私の役割のスクリーンショットです。

ここに画像の説明を入力

roles="" を読んでいるチュートリアルから、役割ごとにリンクへのアクセスを処理することになっていますが、私のサイトでは何も起こっていません。ユーザーと管理者は同じものを見ています。私は何を間違っていますか?

4

1 に答える 1

1

管理者関連のコンテンツを表示する前に、ユーザーが適切な役割を持っているかどうかを確認してください: -

if (Membership.GetUser() != null && Page.User.IsInRole("admin"))
{
    //User is an admin
}
于 2013-06-25T14:32:48.750 に答える