1

サイトマップで役割を実行できるものがあります。少しずつ説明させていただきます。ログインUserAにはRoleXYZがあります。myFolder内には、file1、file2の2つのリソースがあります。この部分の私のweb.config構成:

<location path="myFolder">
  <system.web>
   <authorization>
    <allow roles="RoleXYZ, RoleABC" />
    <deny users="*" />
   </authorization>
 </system.web>
</location>

私のサイトマップ:

<siteMapNode title="$Resources:Web.sitemap, Home" url="~/Home.aspx">    
   <siteMapNode title="Process"  roles="RoleXYZ, RoleABC">
      <siteMapNode title="Add Customers" url="~/myFolder/file1.aspx" roles="RoleXYZ"> </siteMapNode>
      <siteMapNode title="Add Partners" url="~/myFolder/file2.aspx" roles="RoleABC"> </siteMapNode>
   </siteMapNode>
   <siteMapNode title="ContactUs" url="~/ContactUs.aspx"></siteMapNode>
 </siteMapNode>

UserAにはRoleXYZの役割が1つしかないため、通常、siteMapNode(パートナーの追加)を表示することは想定されていません。

何か考え、問題はどこにありますか?

4

1 に答える 1

0

「Roles」属性は、特定の siteMapNode の可視性を広げるためにのみ使用でき、制限することはできません。MSDN のドキュメントは、せいぜいこれについて誤解を招くだけです。

また、この構成は安全ではないことに注意してください。ロール RoleXYZ と RoleABC のユーザーは、ブラウザにアドレスを入力することで、両方のページにアクセスできます。"role" 属性を使用するのではなく、Web.config で個々のページへのアクセスを制限する必要があります。

于 2013-04-12T11:53:11.703 に答える