asp.netのweb.sitemapにおける認可のメニュー項目を非表示にします
-
20-08-2019 - |
質問
私は有効にトリミングセキュリティでweb.sitemapを持っている、しかし私は、web.configファイルにはアクセスルールを持っていないページへの役割に基づいてメニュー項目を非表示にする必要があります。
すなわち、私は、既存のキャンペーンを表示するだけでなく、新しいキャンペーンを追加するために使用されているキャンペーンのページがありますが、私は「新しいキャンペーン」メニュー項目が匿名ユーザーのために非表示にすることにしたいです。 私はweb.sitemapに属性が、これは効果がありませんロールにロール名を追加してみました。
私は、コールの私の次のポートでサイトマッププロバイダを変更せずにこれを行うための簡単な方法がなければならないと確信しています。
解決
これは、匿名ユーザーのためだけの特別なケースである場合は、
、2番目のサイトマップを作成することができます。
新しいファイルWebAnon.sitemapを作成します。
web.configファイルに新しいサイトマッププロバイダを作成します。
<add name="anonProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebAnon.sitemap" securityTrimmingEnabled="true"/>
のSiteMapDataSourceの SiteMapProvider <を設定します。 /背後にあるコードで>プロパティを「anonProvider」その場合、匿名ユーザーます。
他のヒント
roles
で<siteMapNode />
属性が「許可」リストではなく、拒否です。認証済みのユーザーを許可し、匿名拒否するweb.configファイル内の対応<location />
要素を作成/変更します。例えばます。
<location path="campaigns.aspx">
<system.web>
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
</system.web>
</location>
あなたは、Windowsの元本と役割を使用している場合は、その後、背面にログオフするまで、ところで、あなたのグループのメンバーシップへの変更は有効になりません。
所属していません StackOverflow