ヘッダーをスキップ
Oracle® Providers for ASP.NET 開発者ガイド
11gリリース2 (11.2.0.3)for Microsoft Windows
B62266-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OraclePersonalizationProviderクラス

OraclePersonalizationProviderクラスにより、ASP.NET開発者は、Webパーツ・パーソナライズ情報をOracleデータベースに格納できます。

クラスの継承

System.Object

  System.Configuration.Provider.ProviderBase

    System.Web.UI.WebControls.WebParts.PersonalizationProvider

      Oracle.Web.Personalization.OraclePersonalizationProvider

宣言

// C#
public class OraclePersonalizationProvider: PersonalizationProvider

スレッド安全性

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

備考

このクラスにより、ASP.NETアプリケーションは、Oracleデータベースにパーソナライズ情報を格納し、管理できます。

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

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

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

<?xml version="1.0"?>
<configuration xmlns=
  "http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add name="my_personalization_app_con_string" connectionString=
      "User Id=scott;Password=tiger;Data Source=Oracle"/>
  </connectionStrings>
  <system.web>
    <webParts>
      <!-- Enable and customize OraclePersonalizationProvider -->
      <personalization defaultProvider="CustomOraclePersonalizationProvider">
        <providers>
          <add name="CustomOraclePersonalizationProvider"
               type="Oracle.Web.Personalization.OraclePersonalizationProvider,
                     Oracle.Web, Version=2.112.2.0, Culture=neutral,
                     PublicKeyToken=89b483f429c47342"
               connectionStringName="my_personalization_app_con_string"
               applicationName="my_personalization_app"/>
        </providers>
      </personalization>
    </webParts>
  </system.web>
</configuration>

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

要件

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

アセンブリ: Oracle.Web.dll

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


OraclePersonalizationProviderメンバー

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

OraclePersonalizationProviderコンストラクタ

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

表8-1 OraclePersonalizationProviderコンストラクタ

コンストラクタ 説明

OraclePersonalizationProviderコンストラクタ

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


OraclePersonalizationProvider静的メソッド

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

表8-2 OraclePersonalizationProvider静的メソッド

静的メソッド 説明

Equals

System.Objectからの継承

ReferenceEquals

System.Objectからの継承


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

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

表8-3 OraclePersonalizationProviderパブリック・プロパティ

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

ApplicationName


アプリケーションに固有のパーソナライズ情報の指定に使用されるアプリケーションの名前を取得または設定します

CommandTimeout


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

Description

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

Name

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


OraclePersonalizationProviderパブリック・メソッド

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

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

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

FindState


スコープと特定の問合せパラメータに基づいて、ゼロ個以上のPersonalizationStateInfo導出オブジェクトを含むコレクションを戻します

GetCountOfState


指定されたスコープ内の基礎となるOracleデータベース内の行数を戻します

Initialize


Oracle Personalization Providerを初期化します

Equals

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

ResetPersonalizationState

System.Web.UI.WebControls.WebParts. PersonalizationProviderからの継承

ResetState


指定されたパラメータに基づいて、基礎となるデータ・ソースからパーソナライズ状態情報を削除します

ResetUserState


指定されたパラメータに基づいて、基礎となるOracleデータ・ソースからユーザー・パーソナライズ・データを削除します

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

SavePersonalizationState

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承

DetermineInitialScope

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承

DetermineUserCapabilities

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承



OraclePersonalizationProviderコンストラクタ

OraclePersonalizationProviderコンストラクタは、OraclePersonalizationProviderクラスのインスタンスを作成します。

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

OraclePersonalizationProvider()

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

宣言

// C#
public OraclePersonalizationProvider();

備考

ASP.NETアプリケーションは、このコンストラクタを呼び出して、アプリケーション構成ファイルで指定されたとおりにOraclePersonalizationProviderクラスのインスタンスを作成します。OraclePersonalizationProviderインスタンスの初期化値は、Initializeメソッドを通じて渡されます。


OraclePersonalizationProvider静的メソッド

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

表8-5 OraclePersonalizationProvider静的メソッド

静的メソッド 説明

Equals

System.Objectからの継承

ReferenceEquals

System.Objectからの継承



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

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

表8-6 OraclePersonalizationProviderパブリック・プロパティ

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

ApplicationName


アプリケーションに固有のパーソナライズ情報の指定に使用されるアプリケーションの名前を取得または設定します

CommandTimeout


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

Description

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

Name

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


ApplicationName

このプロパティでは、パーソナライズ情報に固有のアプリケーションの名前を取得または設定します。

宣言

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

プロパティ値

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

例外

HttpException - 呼び出し元に、ASP.NETホスティングに対する高い信頼性がありません。

ProviderException - ApplicationName文字列が256文字を超えています。

備考

ApplicationNameプロパティの主な目的は、OraclePersonalizationProviderオブジェクトによって管理されるデータのスコープを指定することです。同じApplicationName文字列を指定するアプリケーションは、Webパーツのパーソナライズ・サービスの構成時にパーソナライズ状態を共有しますが、一意のApplicationName文字列を指定するアプリケーションはこれを共有しません。OraclePersonalizationProviderは、パーソナライズ状態をアプリケーション名に関連付けて、パーソナライズ・データ・ソースに対して実行される操作のスコープをそれに応じて設定できるようにする必要があります。

次の例では、OraclePersonalizationProviderScottという名前のユーザーとAppという名前のアプリケーションのパーソナライズ状態を取得するために使用できる典型的なコードを示します。

SELECT * FROM PersonalizationState
WHERE UserName='Scott' AND Path='~/Default.aspx'
AND ApplicationName='App'

WHERE句の最後のANDは、同じユーザー名とパスでキーが付けられたパーソナライズ状態を含む他のアプリケーションが、Appアプリケーションと競合しないようにします。

構成ファイルのapplicationName属性に値が指定されていない場合、デフォルトは現在のリクエストのApplicationPathプロパティ値になります。構成ファイルの属性名は、大文字と小文字が区別されます。

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

CommandTimeout

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

宣言

// C#
public int CommandTimeout {get;}
 

プロパティ値

int

備考

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

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


OraclePersonalizationProviderパブリック・メソッド

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

表8-7 OraclePersonalizationProviderパブリック・メソッド

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

FindState


スコープと特定の問合せパラメータに基づいて、ゼロ個以上のPersonalizationStateInfo導出オブジェクトを含むコレクションを戻します

GetCountOfState


指定されたスコープ内の基礎となるOracleデータベース内の行数を戻します

Initialize


Oracle Personalization Providerを初期化します

Equals

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

ResetPersonalizationState

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承

ResetState


指定されたパラメータに基づいて、基礎となるデータ・ソースからパーソナライズ状態情報を削除します

ResetUserState


指定されたパラメータに基づいて、基礎となるOracleデータ・ソースからユーザー・パーソナライズ・データを削除します

GetHashCode

System.Objectからの継承

GetType

System.Objectからの継承

ToString

System.Objectからの継承

SavePersonalizationState

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承

DetermineInitialScope

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承

DetermineUserCapabilities

System.Web.UI.WebControls.WebParts.PersonalizationProviderからの継承


FindState

このメソッドは、スコープと固有の問合せパラメータに基づいて、ゼロ個以上のPersonalizationStateInfo導出オブジェクトを含むコレクションを戻します。

宣言

// C#
public override PersonalizationStateInfoCollection FindState(PersonalizationScope
   scope, PersonalizationStateQuery query, int pageIndex, int pageSize, 
   out int totalRecords);

パラメータ

戻り値

0個以上のPersonalizationStateInfo導出オブジェクトを含むPersonalizationStateInfoCollectionオブジェクト。

例外

ArgumentOutOfRangeException - スコープに、PersonalizationScope.UserまたはPersonalizationScope.Shared以外の値が含まれます。

OracleException - Oracle関連のエラーが発生しました。

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

備考

PersonalizationStateInfo導出オブジェクトは、英字順に戻され、PathプロパティとUsernameプロパティの値の組合せで昇順にソートされます。

このメソッドは、問合せワイルドカード文字を基礎となるOracleデータベースに渡します。データベースは、queryパラメータのPathToMatchプロパティ内の検索文字列テキストの先頭、末尾または途中に出現したワイルドカード文字で部分的なパスのワイルドカード検索を実行します。たとえば、PathToMatchプロパティを~/appdir%に設定すると、~/appdirで始まるすべてのパスが見つかります。

同様に、部分的なユーザー名のワイルドカード検索では、ワイルドカード文字がqueryパラメータのUsernameToMatchプロパティのテキスト文字列のどのポイントに出現してもかまいません。たとえば、scottから始まるすべてのユーザー名を検索するには、UsernameToMatchパラメータはscott%のようになります。

次の問合せルールに従う必要があります。

このメソッドでは、問合せパラメータの組合せが検証されません。たとえば、アプリケーション・コードは、共有スコープ内の特定のユーザー名に関連付けられているパーソナライズ状態レコードのセットをリクエストできます。ユーザー名は共有情報に関連付けられていないため、戻されるコレクションは空です。

GetCountOfState

このメソッドは、指定されたスコープ内の基礎となるOracleデータベース内の行数を戻します。

宣言

// C#
public override int GetCountOfState(PersonalizationScope scope,
   PersonalizationStateQuery query);

パラメータ

戻り値

指定されたスコープ・パラメータ内の基礎となるデータ・ソースの行数。

例外

ArgumentException - queryPathToMatchまたはUsernameToMatchプロパティがnull以外の参照であり、切り捨て後に空の文字列("")になります。

ArgumentOutOfRangeException - 指定されたスコープは、PersonalizationScope列挙の有効値ではありません。

OracleException - Oracle関連のエラーが発生しました。

備考

このメソッドは、問合せワイルドカード文字を基礎となるOracleデータベースに渡します。データベースは、queryパラメータのPathToMatchプロパティ内の検索文字列テキストの先頭、末尾または途中に出現したワイルドカード文字で部分的なパスのワイルドカード検索を実行します。たとえば、PathToMatchプロパティを~/appdir%に設定すると、~/appdirで始まるすべてのパスが見つかります。

同様に、部分的なユーザー名のワイルドカード検索では、ワイルドカード文字がqueryパラメータのUsernameToMatchプロパティのテキスト文字列のどのポイントに出現してもかまいません。たとえば、scottから始まるすべてのユーザー名を検索するには、UsernameToMatchパラメータはscott%のようになります。

次の問合せ制約に従う必要があります。

Initialize

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

宣言

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

パラメータ

例外

HttpException - 現在の信頼レベルが「低」未満です。

InvalidOperationException - すでに初期化されているプロバイダに対してInitializeメソッドを呼び出そうとしました。

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

System.Configuration.Provider.ProviderException - 次のいずれかの条件がアプリケーション構成ファイルに存在します。

備考

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

ResetState

このメソッドは、指定されたパラメータに基づいて、基礎となるデータ・ソースからパーソナライズ状態情報を削除します。

宣言

// C#
public override int ResetState(PersonalizationScope scope, string[] paths,
   string[] usernames);

パラメータ

戻り値

削除する行数。

例外

ArgumentOutOfRangeException - 指定されたscopeパラメータは、PersonalizationScope列挙値のメンバーではありません。

OracleException - Oracle関連のエラーが発生しました。

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

備考

このメソッドは、操作を単一のアトミック・トランザクションとして実行します。

それぞれの配列に含まれるpathsおよびusernames要素は、次の検証ルールを満たす必要があります。検証ルールがパラメータ配列のいずれかのメンバーで失敗した場合は、ArgumentException例外がスローされます。検証ルールは次のとおりです。

ResetUserState

このメソッドは、指定されたパラメータに基づいて、基礎となるOracleデータ・ソースからユーザー・パーソナライズ・データを削除します。

宣言

// C#
public override int ResetUserState(string path, DateTime userInactiveSinceDate);

パラメータ

戻り値

基礎となるOracleデータ・ソースから削除された行数。

例外

ArgumentException - pathパラメータが空の文字列です。

OracleException - Oracle関連のエラーが発生しました。

備考

このメソッドのパラメータには次の制限があります。