ヘッダーをスキップ
Oracle® Providers for ASP.NET 開発者ガイド
12cリリース1 (12.1) for Microsoft Windows
B72972-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OracleSiteMapProviderクラス

このクラスにより、ASP.NETアプリケーションは、Oracleデータベースからサイト・マップ情報を取得できます。

クラスの継承

System.Object

  System.Configuration.Provider.ProviderBase

    System.Web.SiteMapProvider

      System.Web.StaticSiteMapProvider

        Oracle.Web.SiteMap.OracleSiteMapProvider

宣言

// C#
Public class OracleSiteMapProvider: StaticSiteMapProvider, IDisposable

スレッド安全性

すべてのパブリック静的メソッドはスレッドセーフですが、インスタンス・メンバーがスレッドセーフであることは保証されません。

備考

このクラスにより、ASP.NETアプリケーションは、Oracleデータベースからサイト・マップ情報を読取りおよびロードできます。

次に、OracleSiteMapProviderをデフォルト・プロバイダとして使用するASP.NETアプリケーションのweb.configの例を示します。この構成では、machine.configファイルで指定された接続文字列とデフォルト属性値を使用します。

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <system.web>
    <siteMap defaultProvider="OracleSiteMapProvider"/>
  </system.web>
</configuration>

次に、OracleSiteMapProviderをデフォルト・プロバイダとして使用し、カスタマイズされた設定とアプリケーション固有の接続文字列を使用するASP.NETアプリケーションのweb.configの例を示します。

<?xml version="1.0"?>
<configuration xmlns=
  "http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add name="my_sitemap_app_con_string" connectionString=
      "User Id=scott;Password=tiger;Data Source=Oracle"/>
  </connectionStrings>
  <system.web>
    <!-- Enable and customize OracleSiteMapProvider -->
    <siteMap defaultProvider="CustomOracleSiteMapProvider">
      <providers>
        <add name="CustomOracleSiteMapProvider"
             type="Oracle.Web.SiteMap.OracleSiteMapProvider,
                   Oracle.Web, Version=2.112.2.0, Culture=neutral,
                   PublicKeyToken=89b483f429c47342"
             connectionStringName="my_sitemap_app_con_string"
             applicationName="my_sitemap_app"
             securityTrimmingEnabled="false"/>
      </providers>
    </siteMap>
  </system.web>
</configuration>

applicationName属性は、ASP.NETアプリケーションごとに一意の値に設定する必要があります。

要件

ネームスペース: Oracle.Web.SiteMap

アセンブリ: Oracle.Web.dll

Oracle Providers for ASP.NETのバージョン: Oracle Providers for ASP.NET 2.0およびOracle Providers for ASP.NET 4

Oracle Database 10gリリース2(10.2)以降では、OracleSiteMapProviderに変更通知権限が必要です。


OracleSiteMapProviderメンバー

次の表にOracleSiteMapProviderメンバーをリストします。

OracleSiteMapProviderコンストラクタ

OracleSiteMapProviderコンストラクタを、表4-1にリストします。

表4-1 OracleSiteMapProviderコンストラクタ

コンストラクタ 説明

OracleSiteMapProviderコンストラクタ


OracleSiteMapProviderクラスの新規インスタンスをインスタンス化します


OracleSiteMapProvider静的メソッド

OracleSiteMapProvider静的メソッドを、表4-2にリストします。

表4-2 OracleSiteMapProvider静的メソッド

静的メソッド 説明

Equals

System.Objectからの継承(オーバーロード)

ReferenceEquals

System.Objectからの継承


OracleSiteMapProviderパブリック・プロパティ

OracleSiteMapProviderパブリック・プロパティを、表4-3にリストします。

表4-3 OracleSiteMapProviderパブリック・プロパティ

パブリック・プロパティ 説明

ApplicationName


異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します

CommandTimeout


コマンドが例外で実行を終了するまでに実行可能な秒数を取得します

CurrentNode

System.Web.SiteMapProviderからの継承(読取り専用)

Description

System.Configuration.Provider.Providerbaseからの継承

EnableLocalization

System.Web.SiteMapProviderからの継承

Name

System.Configuration.Provider.Providerbaseからの継承

ParentProvider

System.Web.SiteMapProviderからの継承

ResourceKey

System.Web.SiteMapProviderからの継承

RootNode

System.Web.SiteMapProviderからの継承(読取り専用)

RootProvider

System.Web.SiteMapProviderからの継承

SecurityTrimmingEnabled

System.Web.SiteMapProviderからの継承


OracleSiteMapProviderパブリック・メソッド

OracleSiteMapProviderパブリック・メソッドを、表4-4にリストします。

表4-4 OracleSiteMapProviderパブリック・メソッド

パブリック・メソッド 説明

BuildSiteMap


Oracleデータベースからサイト・マップ・データをロードすることにより、SiteMapNodeオブジェクトのSiteMapツリーを構築します

Dispose


このインスタンスのすべてのリソースを解放します

FindSiteMapNode

System.Web.StaticSiteMapProviderからの継承

FindSiteMapNodeFromKey

System.Web.StaticSiteMapProviderからの継承

GetChildNodes

System.Web.StaticSiteMapProviderからの継承

GetCurrentNodeAndHintAncestorNodes

System.Web.SiteMapProviderからの継承

GetCurrentNodeAndHintNeighborhoodNodes

System.Web.SiteMapProviderからの継承

GetParentNode

System.Web.StaticSiteMapProviderからの継承

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent

System.Web.SiteMapProviderからの継承

GetParentNodeRelativeToNodeAndHintDownFromParent

System.Web.SiteMapProviderからの継承

HintAncestorNodes

System.Web.SiteMapProviderからの継承

IsAccessibleToUser

System.Web.SiteMapProviderからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

Initialize


ASP.NETアプリケーション構成ファイルで指定されたプロパティ値でOracleSiteMapProviderインスタンスを初期化します

ToString

System.Objectからの継承



OracleSiteMapProviderコンストラクタ

このコンストラクタでは、OracleSiteMapProviderクラスの新規インスタンスがインスタンス化されます。

オーバーロード・リスト:

  • OracleSiteMapProvider()

    このコンストラクタでは、OracleSiteMapProviderクラスのインスタンスが作成されます。

OracleSiteMapProvider()

このコンストラクタでは、OracleSiteMapProviderクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleSiteMapProvider();

備考

OracleSiteMapProviderコンストラクタは、アプリケーションの構成ファイルで指定されたOracleSiteMapProviderクラスのインスタンスを作成するために、ASP.NETによって呼び出されます。OracleSiteMapProviderオブジェクトの初期化値は、Initializeメソッドを通じて渡されます。

このコンストラクタは、アプリケーションで直接使用されることを意図していません。


OracleSiteMapProvider静的メソッド

OracleSiteMapProvider静的メソッドを、表4-5にリストします。

表4-5 OracleSiteMapProvider静的メソッド

静的メソッド 説明

Equals

System.Objectからの継承(オーバーロード)

ReferenceEquals

System.Objectからの継承



OracleSiteMapProviderパブリック・プロパティ

OracleSiteMapProviderパブリック・プロパティを、表4-6にリストします。

表4-6 OracleSiteMapProviderパブリック・プロパティ

パブリック・プロパティ 説明

ApplicationName


異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します

CommandTimeout


コマンドが例外で実行を終了するまでに実行可能な秒数を取得します

CurrentNode

System.Web.SiteMapProviderからの継承

Description

System.Configuration.Provider.Providerbaseからの継承

EnableLocalization

System.Web.SiteMapProviderからの継承

Name

System.Configuration.Provider.Providerbaseからの継承

ParentProvider

System.Web.SiteMapProviderからの継承

ResourceKey

System.Web.SiteMapProviderからの継承

RootNode

System.Web.SiteMapProviderからの継承

RootProvider

System.Web.SiteMapProviderからの継承

SecurityTrimmingEnabled

System.Web.SiteMapProviderからの継承


ApplicationName

このプロパティでは、異なるアプリケーションのサイト・マップ・データを区別するアプリケーションの名前を取得または設定します。

宣言

// C#
public string ApplicationName{get; set;}

プロパティ値

アプリケーションの名前。applicationName属性がアプリケーション構成ファイルで指定されていない場合、または値が空の文字列の場合は、このプロパティがアプリケーションの仮想パスに設定されます。

例外

HttpException - ApplicationNameプロパティが、高いASP.NETホスティング権限を持たないユーザーによって設定されました。

System.Configuration.Provider.ProviderException - 指定されたアプリケーション名が256文字を超えています。

ArgumentException - 指定されたアプリケーション名が空の文字列またはnull参照です。

備考

ApplicationNameプロパティの文字列値は、ユーザー情報の編成に使用されます。

ユーザー情報はアプリケーション名ごとに一意に格納されるため、複数のASP.NETアプリケーションが、同じデータ・ソースを使用したり、重複するユーザー名を作成したりできます。このプロパティは、プログラムで設定するか、Webアプリケーションの構成ファイルでapplicationName属性を使用して宣言で設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。

ApplicationNameプロパティはスレッドセーフではありません。プログラム・コードでは、ユーザーにWebアプリケーションでのApplicationNameプロパティの設定を許可しないことをお薦めします。

CommandTimeout

このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を取得します。

宣言

// C#
public int CommandTimeout {get;}
 

プロパティ値

int

備考

プロバイダをカスタマイズするために、ASP.NET開発者は、commandTimeout属性を使用してweb.configファイルでこのプロパティに整数値を設定できます。

デフォルト値は30秒です。構成ファイルの属性名は、大文字と小文字が区別されます。


OracleSiteMapProviderパブリック・メソッド

OracleSiteMapProviderパブリック・メソッドを、表4-7にリストします。

表4-7 OracleSiteMapProviderパブリック・メソッド

パブリック・メソッド 説明

BuildSiteMap


Oracleデータベースからサイト・マップ・データをロードすることにより、SiteMapNodeオブジェクトのSiteMapツリーを構築します

Dispose


このインスタンスのすべてのリソースを解放します

FindSiteMapNode

System.Web.StaticSiteMapProviderからの継承

FindSiteMapNodeFromKey

System.Web.StaticSiteMapProviderからの継承

GetChildNodes

System.Web.StaticSiteMapProviderからの継承

GetCurrentNodeAndHintAncestorNodes

System.Web.SiteMapProviderからの継承

GetCurrentNodeAndHintNeighborhoodNodes

System.Web.SiteMapProviderからの継承

GetParentNode

System.Web.StaticSiteMapProviderからの継承

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent

System.Web.SiteMapProviderからの継承

GetParentNodeRelativeToNodeAndHintDownFromParent

System.Web.SiteMapProviderからの継承

HintAncestorNodes

System.Web.SiteMapProviderからの継承

IsAccessibleToUser

System.Web.SiteMapProviderからの継承

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

Initialize


ASP.NETアプリケーションの構成ファイルで指定されたプロパティ値でOracleSiteMapProviderインスタンスを初期化します

ToString

System.Objectからの継承


BuildSiteMap

このメソッドは、Oracleデータベースからサイト・マップ・データをロードすることにより、SiteMapNodeオブジェクトのSiteMapツリーを構築します。

宣言

// C#
Public override SiteMapNode BuildSiteMap();

戻り値

サイト・マップ・ナビゲーション構造のルートSiteMapNode

例外

InvalidOperationException - OracleSiteMapProviderインスタンスが初期化されていません。

ProviderException - 次のいずれかの条件が存在します。

  • ルート・ノードが見つかりません

  • 複数のルート・ノードが見つかりました。

  • ノードの親ノードが見つかりません。

ConfigurationErrorsException - 次のいずれかの条件が存在します。

  • SiteMapNodeのロールに有効でない文字が含まれています。

  • URLが、一意でないSiteMapNodeに対して解析されています。

  • SiteMapNodeオブジェクトで、重複するKeyの値が検出されました。

  • SiteMapNodeのURLの解析中にエラーが発生しました。

備考

このメソッドは、データベースからサイト・マップ・データをフェッチし、サイト・マップ・ノードのツリーをメモリーに作成します。OracleSiteMapProviderオブジェクトでは、データベース変更通知をサブスクライブして、データベース内のサイト・マップ・データの変更について通知を受けることを選択できます。このメソッドはスレッドセーフです。


関連項目:


Dispose

このメソッドは、このインスタンスのすべてのリソースを解放します。

宣言

// C#
public override void Dispose();

備考

このメソッドは、アプリケーション・ドメインが閉じられたときにこのインスタンスのすべてのリソースを解放します。

Initialize

このメソッドは、OracleSiteMapProviderインスタンスを、ASP.NETアプリケーション構成ファイル(web.config)で指定されたプロパティ値で初期化します。

宣言

// C#
Public override void Initialize(string name, NameValueCollection config);

パラメータ

  • name

    初期化するOracleSiteMapProviderインスタンスの名前。

  • config

    サイト・マップ・プロバイダの構成オプションの名前と値を含むSystems.Collections.Specialized.NameValueCollectionオブジェクト。

例外

ArgumentNullException - configパラメータがnullです。

InvalidOperationException - SiteMapProviderはすでに初期化されています。

ProviderException - 次のいずれかの条件が存在します。

  • 構成ファイル内のconnectionStringName属性がnullまたは空です。

  • connectionStringName属性の値に対応する接続文字列がnullまたは空です。

  • 構成ファイルに、認識されない属性が含まれています。

  • プロバイダの初期化中にエラーが発生しました。

備考

Initializeメソッドは、アプリケーションによって直接呼び出されることを意図していません。