1

私が持っているものがうまくいくと言うことから始めましょう-私はそれが好きではありません.

ナビゲーション バーに使用する web.sitemap があります。全員がアクセスできるノードもあれば、役割が割り当てられているノードもあります (アクセスできないユーザーにはノードが表示されないようにするため)。

すなわち<siteMapNode url="~/adminpage.aspx" title="admin" roles="domain\Administrators"/>

次に、私の web.config には、次のような場所の要素があります。

<location path="adminpage.aspx">
  <system.web>
    <authorization>
      <allow roles="domain\Administrators"/>
      <deny roles="*"/>
    </authorization>
  </system.web>
</location>

これに加えて、一部のページには、次のようにロールに基づいて表示または非表示になるハイパーリンクがあります。

myHyperlink.Visible = Roles.IsUserInRole(@"domain\Administrators");

これはすべて問題なく機能しますが、少しばかげているようです。サイトマップと Roles.IsUserInRole によって Web.config で確立されたアクセス許可を利用する方法はありますか? 基本的に、私は 435234 の異なる場所で同じ権限の説明を持たないようにしています。

Casses ソリューションを使用して、Web 構成の設定を使用する埋め込みコードをサイトマップ ファイルに追加しようとしましたが、うまくいきません (サイトマップ ファイルに埋め込みコードを配置できないため)。

4

1 に答える 1