私のweb.configには次のものがあります:
<location path="RestrictedPage.aspx">
<system.web>
<authorization>
<allow roles="Group1Admin, Group3Admin, Group7Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
RestrictedPage.aspx.cs 内で、Group1Admin、Group3Admin、および Group7Admin を含む許可されたロール コレクションを取得するにはどうすればよいですか?
これが私が尋ねる理由です:
web.config は、ページへの承認を処理しています。それはうまくいきます。ただし、これらのページをいくつか作成します (RestrictedPage.aspx、RestrictedPage2.aspx、RestrictedPage3.aspx など)。これらの各ページには、カスタム Web コントロールが配置されます。そして、これらの各ページには、許可される役割が異なります。私の Web コントロールにはドロップダウン リストがあります。ドロップダウン内の選択肢は、ユーザーの役割とページの許可された役割の交差によって異なります。
以下で説明するように、XPath を使用して web.config を検索すると、おそらくうまくいくでしょう。もっとフレームワーク的なものを望んでいました。サイトマップのようなもの。web.sitemap にロールを配置すると、SiteMap.CurrentNode.Roles を使用してそれらを取得できます (私の Web サイトは Windows 認証を使用しているため、セキュリティ トリミングに web.sitemap を使用できず、ロールを 1 つのみに維持したいと考えています)。ファイル)。