私は私のサイトで奇妙な問題に直面しています、私は私が扱っているメニューを持っています、asp:menu
そして今私はに基づいSiteMap
て制限したいので、私はweb.configで使用しています、今私の問題は私が有効にする必要があるいくつかのメニュー項目を持っていることです2種類のユーザー(管理者とログインユーザー)によって、ファイルに作成され、メニューで使用されます。ここに、メニューにアクセスできるユーザーの種類を指定する属性を追加しました。ホームメニューがあります。これらの2人のユーザーのみがアクセスする必要があり、他のユーザーはアクセスできません(つまり、匿名ではありません)。属性で複数の役割を指定する方法が見つかりません。指定も試みましたが、匿名以外のユーザーでも機能するようです。私の要件ではありません、これが私のサンプルですmenu's
roles
securityTrimmingEnable="true"
Web.Sitemap
siteMapNode
roles
roles
*
web.sitemap
ファイル
<siteMapNode roles="*">
<siteMapNode roles="Administrator" url="~/default.aspx" title="HOME" />
</siteMapNode>
上記の場合、ホームメニューは管理者のみが利用できます。これで、管理者ではないがログインしているユーザーが利用できるように指定*
すると、ログインしていないユーザーでも機能します。
<siteMapNode roles="*">
<siteMapNode roles="*" url="~/default.aspx" title="HOME" />
</siteMapNode>
とにかく、管理者とログインしているユーザーだけが上記のメニューを利用できるようにすることはできますか?
以下は私のweb.config設定です:
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<clear/>
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider "
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>