問題タブ [sitemapprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - セキュリティ トリミングが有効になっているとメニューがまったく表示されないのはなぜですか
セキュリティ トリミングが有効になっていると、完全なメニュー システムが表示されません...
次のようにWeb.configでセキュリティトリミングを有効にしました...
私のWeb.sitemapは次のとおりです...
問題がアクセス ルールに関連していると考えて、すべてのアクセス ルールを削除しましたが、これは役に立ちませんでした。基本的に、「セキュリティトリミング」が「True」として有効になっている場合、メニューは表示されませんが、設定を「false」に変更すると、メニュー全体が表示されますが、明らかにトリミングされません。
sharepoint - aspmenu で DataSourceID を変更できません
私の英語でごめんなさい。カスタム プロバイダーを配置しようとしていますが、SiteMapDataSource プロバイダーに記述しても何も変わりません。彼の ID を変更し、それに応じて DataSourceID ページでその属性を変更すると、そうではないというエラーが発生します。彼は TopSiteMap ID を覚えていて、それ以外をコンパイルしたくありません。
プロバイダーは Web 構成に登録されており、他のサイト コレクションは正常に機能しています。しかし、これにはバグがありました。
説明されているマスター ページ メニューの場合:例外をスローします:
System.Web.HttpException: 'TopNavigationMenuV4' の DataSourceID は、タイプ IHierarchicalDataSource のコントロールの ID でなければなりません。ID「topCrossSiteMap」のコントロールが見つかりませんでした。
ULS では、相関 ID のないレコードを要求する前に 2 ミリ秒で、コンテンツ データベースにアクセスするときに次のエラーが発生します。
PermissionMask チェックに失敗しました。0x00010000 を要求し、0x00000000 を持っています
と
説明されているマスター ページ メニューの場合:アクセスが拒否されました。例外: System.UnauthorizedAccessException: アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))
Microsoft.SharePoint.Library.SPRequestInternalClass.GetWebMetainfo (文字列 bstrUrl)
で Microsoft.SharePoint.Library.SPRequest.GetWebMetainfo (文字列 bstrUrl)。
すべてがエラーなしで機能します。しかし、メニューは明らかに SPNavigationProvider を使用しています。
もう 1 つの詳細:サイト コレクションのさまざまな面がさまざまな方法で表示されます。(1 つは他の何も変更されていないエラーをドロップアウトしました) 最初に、オブジェクト http.sys の問題と考えました。WFE サーバーを再起動しようとしました。しかし、それは役に立ちませんでした。
c# - ASP.net ページにブレッドクラムを設定する方法
ページの私のフォルダー階層は次のとおりです (それらはすべて同じフォルダーにあります)。
私はWeb.sitemap
ページを設定しました:
MasterPage で呼び出しています:
Default.aspx
私のランディングページもそうです。ユーザーは をクリックしfind_provider.aspx
て、選択したプロバイダーを検索できます。各プロバイダの検索結果について、ユーザーは PROFILE リンクをクリックして、ページである個々のプロバイダの情報を表示できprovider.aspx
ます。
そう:
- ホームページにいる場合、パンくずリストは次のようになります。
Home
- プロバイダーの検索ページにいる場合、パンくずリストは次のようになります。
Home Provider
- プロフィール ページを表示している場合、パンくずリストは次のようになります。
Home Provider Profile
代わりに、自分のページに次のように表示されます (現在のページに関係なく)。
サイトノードとサブサイトノードごとにブレッドクラムが表示されるようにコードを修正してください。
私が達成したいことのサンプル:
HTML:
出力:
asp.net-mvc - MVC サイトマップの問題
MVC サイトマップで奇妙な問題に直面しています。現在、サイトマップ リンクは最大 3 レベルで、将来変更される可能性があります。問題は、次のレベルにいるときに中間レベルのサイトマップ リンクが機能しないことです (リンクをクリックするとエラーが発生します - Http 403.1 Forbidden)。URL が適切ではないことがわかりました。たとえば、Area と Controller の名前が、見逃したアクション名だけをポップアップ表示するだけです。
例: ホーム>会社>追加
[追加] 画面 (最終レベル) で、[ホーム] をクリックすると、localhost:xxxx/Home/index にリダイレクトされ、正常に動作します。
Company をクリックすると、localhost:xxxx/Company/Company にリダイレクトされ、そこから localhost:xxxx/Company/Company/index にリダイレクトされることが期待されます
次のエラーが発生します。
ローカルホスト:xxxx/会社/会社/
HTTP エラー 403.14 - 許可されていません Web サーバーは、このディレクトリの内容を一覧表示しないように構成されています。最も可能性の高い原因: • 要求された URL に対して既定のドキュメントが構成されておらず、ディレクトリの参照がサーバーで有効になっていません。
MVC.Sitemap の詳細は次のとおりです。
asp.net - XmlSiteMapProvider は最初のノードのみを解析します
厄介な問題があり、解決策の始まりが見つからないので、助けていただければ幸いです。
各ノードにロールが定義されたサイトマップがあります。
そして、web.config でセキュリティを有効にし、カスタム プロバイダーを使用します。
私のプロバイダーでは、 IsAccessibleToUser をオーバーライドしてロジックを実行するだけです:
私の問題は、 IsAccessibleToUser で使用されるノードが常に「Default.aspx」という URL を持つノードであることです。したがって、それを見る役割がある場合はすべてのノードが表示され、役割がない場合はノードが表示されません。
ここで何が悪いのかわかりません。
ヒントはありますか?
c# - SiteMapNode をリストの先頭に移動
私は持っていてSystem.Web.SiteMapProvider
、使用してすべてのツリー(ノード)を取得しますproviderSiteMap.RootNode.ChildNodes
からRootNode
の子ノードの場合、最後のノードを(最初のアイテムとして)一番上に移動します。
最後のノード N10 を移動したい:
私はこれを試します:
そして私は試します:
var item = providerSiteMap.RootNode.ChildNodes.Cast().FirstOrDefault(x => x.Key == "9100");
ToList().Count
前後同じですRemove(item)
そして私は試します:
実行しようとするとCollection is read-onlyエラーが発生しますproviderSiteMap.RootNode.ChildNodes.Remove(item);
助言がありますか?