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

前
 
次
 

OracleRoleProviderクラス

OracleRoleProviderクラスにより、ASP.NETアプリケーションは、ロールおよびユーザー情報をOracleデータベースに格納できます。

クラスの継承

System.Object

  System.Configuration.Provider.ProviderBase

    System.Web.Security.RoleProvider

      Oracle.Web.Security

宣言

// C#
public class OracleRoleProvider : RoleProvider

スレッド安全性

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

備考

このクラスにより、ASP.NETアプリケーションは、Oracleデータベースにロール情報を格納し、管理できます。このプロバイダが管理するロール情報は、データベース・ロールではなくアプリケーション・ロールであることに注意してください。

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

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <system.web>
    <roleManager enabled="true" defaultProvider="OracleRoleProvider"/>
  </system.web>
</configuration>

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

<?xml version="1.0"?>
<configuration xmlns=
  "http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add name="my_role_app_con_string" connectionString=
      "User Id=scott;Password=tiger;Data Source=Oracle"/>
  </connectionStrings>
  <system.web>
    <!-- Enable and customize OracleRoleProvider -->
    <roleManager enabled="true" defaultProvider="MyOracleRoleProvider">
      <providers>
        <add name="MyOracleRoleProvider"
             type="Oracle.Web.Security.OracleRoleProvider,
             Oracle.Web, Version=2.112.2.0, Culture=neutral,
             PublicKeyToken=89b483f429c47342"
             connectionStringName="my_role_app_con_string" 
             applicationName="my_role_app"/>
      </providers>
    </roleManager>
  </system.web>
</configuration>

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

要件

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

アセンブリ: Oracle.Web.dll

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


OracleRoleProviderメンバー

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

OracleRoleProviderコンストラクタ

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

表3-1 OracleRoleProviderコンストラクタ

コンストラクタ 説明

OracleRoleProviderコンストラクタ

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


OracleRoleProvider静的メソッド

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

表3-2 OracleRoleProvider静的メソッド

静的メソッド 説明

Equals

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

ReferenceEquals

System.Objectからの継承


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

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

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

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

ApplicationName


ロール・プロバイダ情報を格納するアプリケーションの名前を取得または設定します

CommandTimeout


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

Description

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

Name

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


OracleRoleProviderパブリック・メソッド

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

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

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

AddUsersToRoles


指定されたロールに指定されたユーザーを追加します

CreateRole


データベースに新しいロールを追加します

DeleteRole


データベース内のロールを削除します

Equals

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

FindUsersInRole


指定されたユーザー名に一致するユーザー名の配列を戻します

GetAllRoles


アプリケーションのすべてのロールの配列を戻します

GetHashCode

System.Objectからの継承

GetRolesForUser


指定されたユーザーのロール名の配列を戻します

GetType

System.Objectからの継承

GetUsersInRole


指定されたロール名のユーザーの配列を戻します

Initialize


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

IsUserInRole


指定されたユーザーが指定されたロールに存在するかどうかを示します

RemoveUsersFromRoles


指定されたロール名の配列から指定されたユーザーの配列を削除します

RoleExists


指定されたロール名がデータベースに存在するかどうかを示します

ToString

System.Objectからの継承



OracleRoleProviderコンストラクタ

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

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

OracleRoleProvider()

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

宣言

// C#
public OracleRoleProvider();

備考

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


OracleRoleProvider静的メソッド

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

表3-5 OracleRoleProvider静的メソッド

静的メソッド 説明

Equals(オーバーロード)

System.Objectからの継承

ReferenceEquals

System.Objectからの継承



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

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

表3-6 OracleRoleProviderパブリック・プロパティ

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

ApplicationName


ロール・プロバイダ情報を格納するアプリケーションの名前を取得または設定します

CommandTimeout


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

Description

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

Name

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


ApplicationName

このプロパティでは、ロール・プロバイダ情報を格納するアプリケーションの名前を取得または設定します。

宣言

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

プロパティ値

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

例外

HttpException - ApplicationNameプロパティを設定しているユーザーに、高いASP.NETホスティング権限がありません。

System.Configuration.Provider.ProviderException - ApplicationNameプロパティが、256文字を超える文字列に設定されています。

備考

ApplicationNameプロパティの文字列値は、様々なアプリケーションでのユーザー名とロール名の関連付けに使用されます。複数のアプリケーションが、重複する名前間で競合を発生させずに、同じデータベースを使用してユーザー名とロール名を格納できます。このプロパティは、プログラムで設定するか、Webアプリケーション構成ファイルでapplicationName属性を使用して宣言で設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。

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

CommandTimeout

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

宣言

// C#
public int CommandTimeout {get;}
 

プロパティ値

int

備考

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

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


OracleRoleProviderパブリック・メソッド

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

表3-7 OracleRoleProviderパブリック・メソッド

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

AddUsersToRoles


指定されたロールに指定されたユーザーを追加します

CreateRole


データベースに新しいロールを追加します

DeleteRole


データベース内のロールを削除します

Equals

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

FindUsersInRole


指定されたユーザー名に一致するユーザー名の配列を戻します

GetAllRoles


アプリケーションのすべてのロールの配列を戻します

Get Hash Code

System.Objectからの継承

GetRolesForUser


指定されたユーザーのロール名の配列を戻します

Getup

System.Objectからの継承

GetUsersInRole


指定されたロール名のユーザーの配列を戻します

Initialize


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

IsUserInRole


指定されたユーザーが指定されたロールに存在するかどうかを示します

RemoveUsersFromRoles


指定されたロール名の配列から指定されたユーザーの配列を削除します

RoleExists


指定されたロール名がデータベースに存在するかどうかを示します

ToString

System.Objectからの継承


AddUsersToRoles

このメソッドは、指定されたロールに指定されたユーザーを追加します。

宣言

// C#
public override void AddUsersToRoles(string[] userNames, string[] roleNames);

パラメータ

例外

ArgumentNullException - userNames内のいずれかのユーザーまたはroleNames内のいずれかのロールがnullです。

ArgumentException - roleNamesまたはuserNamesパラメータが空の文字列であるか、カンマを含むか、256文字を超えているか、重複する要素を含んでいます。

System.Configuration.Provider.ProviderException - 1つ以上のロール名が見つからなかったか、1つ以上のユーザー名がすでに1つ以上のロール名に関連付けられています。

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

備考

このメソッドは、1つ以上の指定されたロールに1つ以上のユーザー名を追加します。更新は、トランザクションで実行されます。エラーが発生した場合は、トランザクションがロールバックされ、更新は行われません。

いずれかのユーザー名がデータベースに存在しない場合は、ユーザー名が作成され、データベースに追加されます。

CreateRole

このメソッドは、データベースに新しいロールを追加します。

宣言

// C#
public override void CreateRole(string roleName);

パラメータ

例外

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

ArgumentException - roleNameパラメータが空の文字列であるか、カンマを含むか、または256文字を超えています。

System.Configuration.Provider.ProviderException - ロール名はすでにデータベースに存在します。

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

備考

このメソッドは、データベースに新しいロールを作成します。

DeleteRole

このメソッドは、データベース内のロールを削除します。

宣言

// C#
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole);

パラメータ

戻り値

指定されたロールが正常に削除された場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

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

System.Configuration.Provider.ProviderException - ロール名に少なくとも1つのユーザー名が含まれ、throwOnPopulatedRoleパラメータがtrueに設定されています。

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

ArgumentException - roleNameパラメータが空の文字列であるか、カンマを含むか、256文字を超えています。

備考

throwOnPopulatedRoleパラメータがfalseに設定されている場合は、指定されたロールにユーザーが含まれているかどうかにかかわらず、そのロールがデータベースから削除されます。throwOnPopulatedRoleパラメータがtrueに設定されている場合は、データベース内の指定されたロールにユーザーが含まれていると、例外がスローされ、ロールは削除されません。

FindUsersInRole

このメソッドは、指定されたロール名について、指定されたユーザー名に一致するユーザー名の配列を戻します。

宣言

// C#
public override string[ ] FindUsersInRole(string roleName, string
   userNameToMatch);

パラメータ

戻り値

指定されたロール内の、指定されたuserNameToMatchパラメータに一致するユーザー名を含む文字列配列。

例外

ArgumentNullException - roleNameまたはuserNameToMatchパラメータがnullです。

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

System.Configuration.Provider.ProviderException - ロール名がデータベースに存在しません。

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

備考

このメソッドは、指定されたロール名について、指定されたユーザー名に一致するユーザー名の配列を戻します。このメソッドでは、Oracleワイルドカード文字がサポートされます。userNameToMatchパラメータが"oraUser%"に設定されている場合は、"oraUser1""oraUser2"などのユーザーの配列が戻されます。一方、userNameToMatchパラメータが"oraUser"に設定されている場合は、"oraUser"があればユーザー名"oraUser"のみの配列が戻されます。

GetAllRoles

このメソッドは、アプリケーションのすべてのロールの配列を戻します。

宣言

// C#
public override string[ ] GetAllRoles();

戻り値

アプリケーションに対するデータベース内のすべてのロール名を含む文字列配列。

例外

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

GetRolesForUser

このメソッドは、指定されたユーザーのロール名の配列を戻します。

宣言

// C#
public override string[] GetRolesForUser(string userName);

パラメータ

戻り値

指定されたユーザー名のロール名の配列。

例外

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

ArgumentException - userNameパラメータがカンマを含むか、256文字を超えています。

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

GetUsersInRole

このメソッドは、指定されたロール名のユーザーの配列を戻します。

宣言

// C#
public override string[ ] GetUsersInRole(string roleName);

パラメータ

戻り値

指定されたロール名のユーザー名の配列。

例外

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

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

System.Configuration.Provider.ProviderException - ロール名がデータベースに存在しません。

ArgumentException - roleNameパラメータが空の文字列であるか、カンマを含むか、256文字を超えています。

Initialize

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

宣言

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

パラメータ

例外

System.Web.HttpException - ASP.NETが中程度以上の信頼レベルで実行されていません。

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

System.Configuration.Provider.ProviderException - connectionStringName属性が空であるか、構成ファイルに存在しません。または、applicationName属性が256文字を超えているか、構成ファイルに無効な属性が含まれています。

備考

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

IsUserInRole

このメソッドは、指定されたユーザーが指定されたロール内にあるかどうかを示します。

宣言

// C#
public override bool IsUserInRole(string userName, string roleName);

パラメータ

戻り値

指定されたユーザー名が指定されたロール名にある場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

ArgumentNullException - userNameまたはroleNameパラメータがnullです。

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

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

備考

このメソッドでは、指定されたユーザー名がデータベース内の指定されたロール名に存在するかどうかが判断されます。

RemoveUsersFromRoles

このメソッドは、指定されたロール名の配列から指定されたユーザーの配列を削除します。

宣言

// C#
public override void RemoveUsersFromRoles(string[] userNames, string[] roleNames);

パラメータ

例外

ArgumentNullException - userNamesパラメータ内のいずれかのユーザーまたはroleNamesパラメータ内のいずれかのロールがnullです。

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

System.Configuration.Provider.ProviderException - 1つ以上のロール名またはユーザー名がデータベースに存在しないか、1つ以上のユーザー名がロール名に関連付けられていません。

ArgumentException - roleNamesまたはuserNamesパラメータが空の文字列であるか、カンマを含むか、256文字を超えているか、重複する要素を含んでいます。

備考

このメソッドは、指定されたロール名の配列から指定されたユーザー名の配列を削除します。更新はトランザクション内で行われます。エラーが発生した場合は、トランザクションがロールバックされます。

RoleExists

このメソッドは、指定されたロール名がデータベースに存在するかどうかを示します。

宣言

// C#
public override bool RoleExists(string roleName);

パラメータ

戻り値

ロール名が存在する場合はtrueを戻し、それ以外の場合はfalseを戻します。

例外

ArgumentNullException - roleNameパラメータがnullです

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

ArgumentException - roleNameパラメータが空の文字列であるか、カンマを含むか、または256文字を超えています。