2

セキュリティトリミングが有効になっているweb.sitemapがありますが、web.configにアクセスルールがないページへのロールに基づいてメニュー項目を非表示にする必要があります。

つまり、既存のキャンペーンを表示したり、新しいキャンペーンを追加したりするために使用されるキャンペーンページがありますが、匿名ユーザーに対して[新しいキャンペーン]メニュー項目を非表示にしたいのです。web.sitemapのroles属性にロール名を追加しようとしましたが、効果がありません。

次の呼び出しポートであるサイトマッププロバイダーを変更せずに、これを行うための迅速な方法が必要だと確信しています。

4

2 に答える 2

2

これが匿名ユーザーの特殊なケースである場合は、2 つ目のサイトマップを作成できます。

新しいファイル WebAnon.sitemap を作成します。
web.config で新しいサイトマップ プロバイダーを作成する

<add name="anonProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebAnon.sitemap" securityTrimmingEnabled="true"/>

匿名ユーザーの場合は、コード ビハインドでSiteMapDataSource のSiteMapProviderプロパティを「anonProvider」に設定します。

于 2009-01-30T19:47:04.803 に答える
1

aのroles属性は<siteMapNode />「許可」リストであり、拒否ではありません。<location />認証されたユーザーを許可し、匿名を拒否するように、web.config で対応する要素を作成/変更します。例えば

<location path="campaigns.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
   <deny users="?" />
  </authorization>
 </system.web>
</location>

ところで、Windows のプリンシパルとロールを使用している場合、グループ メンバーシップへの変更は、ログオフしてから再度ログオンするまで有効になりません。

于 2009-01-29T14:21:11.373 に答える