0

アクセスが非常に細分化されているため、多くの web.config ファイルが必要な Web サイトがあります。問題は、特定のユーザーだけが特定のフォルダーにアクセスできるように、メニューをトリミングしたいということです。サイトマップでトリミングとセットアップの役割を有効にしましたが、サブフォルダーにないデフォルトのページを表示する権限があるため、ページにアクセスしてもメニューが表示されません。サブフォルダーのページの URL を入力すると、アクセスできます。

これをどのように処理すればよいですか:

  1. 各 web.config ファイルのサイト マップ - これがどのように機能するかわかりません
  2. サブ web.config ファイルを削除して、単一のファイルのみを使用する

  3. 他の提案はありますか。

ありがとう

4

3 に答える 3

0

ここで解決策を見つけた私の質問に答えました: ASPフォーラム

よろしくお願いします。

それはとても些細なことでした。

実行する必要があるのは、サイトマップの最上位ノードにURLがあることを確認することだけでした。

    <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
      <siteMapNode **url="~/"** title="Home" description="">
      <siteMapNode title="Home" url="~/Default.aspx"/>
      <siteMapNode title="About" url="~/About/About.aspx" />
      <siteMapNode title="Lists" url="~/Lists/Lists.aspx" />
  </siteMapNode>
  </siteMap>

この行に注意してください:

于 2012-06-19T08:00:42.757 に答える
0

MembershipUser、RoleManager クラス、および regsql.exe ツールを使用して、セキュリティ データベースを生成できます。

または、IPrincipal と IIdentity を使用して特定のセキュリティ ライブラリを作成します。

于 2012-06-18T13:05:30.460 に答える
0

各 web.config ファイルのサイト マップは必要ありません。メニュー コントロールと SitemapDataSource でサイトマップを使用する場合、ASP.NET は、構成された MembershipProvider および/または RoleProvider を介して、サイトマップで指定された各ページにアクセスできるかどうかを判断します。アクセスできる場合は、サイトマップ エントリが次の場所に表示されます。メニュー。

サイトマップ内のアイテムのすべての親にアクセスできない場合、そのアイテムを表示できないことに注意してください。メニューのルートがサイトマップ内で設定されている場所を変更するには、StartingNodeUrl を使用して SitemapDataSource を構成できます。

メニューに既定のページが表示されない理由として、URL を直接入力して既定のページにアクセスできる場合は、Menu または SitemapDataSource が適切に設定されていない可能性があります。ヘルプについては、http: //msdn.microsoft.com/en-us/library/ms227441.aspx およびhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrolsを参照してください。 .menu.aspx#binding_to_data

追加のガイダンスが必要な場合は、問題の正確な原因を絞り込むことをお勧めします。メンバーシップ、役割、サイトマップ、およびメニューはかなり幅広いトピックであり、発生する可能性のある落とし穴がたくさんあるためです。セキュリティ トリミングなしでメニューを起動して実行し、2 つをリンクする前に、メンバーシップとロールが適切に機能していることを確認します。

于 2012-06-18T14:28:02.633 に答える