OracleMembershipProvider
クラスにより、ASP.NET開発者は、Webサイト・ユーザーのアカウント情報をOracleデータベースに格納できます。
クラスの継承
System.Object
System.Configuration.Provider.ProviderBase
System.Web.Security.MembershipProvider
Oracle.Web.Security.OracleMembershipProvider
宣言
// C# public class OracleMembershipProvider: MembershipProvider
スレッド安全性
すべてのパブリック静的メソッドはスレッドセーフですが、インスタンス・メンバーがスレッドセーフであることは保証されません。
備考
このクラスにより、ASP.NETアプリケーションは、Oracleデータベースにユーザー情報を格納し、管理できます。この章のユーザーという用語は、データベース・ユーザーではなくアプリケーションまたはユーザーを意味していることに注意してください。したがって、このプロバイダが管理するユーザー情報は、データベース・ユーザー情報ではなくアプリケーション情報またはユーザー情報です。
例
次のコード例は、OracleMembershipProvider
をデフォルト・プロバイダとして使用するように構成されたASP.NETアプリケーションのweb.config
ファイルを示します。この構成では、machine.config
ファイルで指定された接続文字列とデフォルト属性値を使用します。
<?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <membership defaultProvider="OracleMembershipProvider"/> </system.web> </configuration>
次に、OracleMembershipProvider
をカスタマイズされた設定およびアプリケーション固有の接続文字列とともに使用するASP.NETアプリケーションに対するweb.config
の例を示します。
<?xml version="1.0"?> <configuration xmlns= "http://schemas.microsoft.com/.NetConfiguration/v2.0"> <connectionStrings> <add name="my_membership_app_con_string" connectionString= "User Id=scott;Password=tiger;Data Source=Oracle"/> </connectionStrings> <system.web> <!-- Enable and customize OracleMembershipProvider settings --> <membership defaultProvider="MyOracleMembershipProvider"> <providers> <add name="MyOracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="my_membership_app_con_string" applicationName="my_membership_app" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="4" minRequiredPasswordLength="9" passwordAttemptWindow="8"/> </providers> </membership> </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
次の表にOracleMembershipProvider
メンバーをリストします。
OracleMembershipProviderコンストラクタ
OracleMembershipProvider
コンストラクタを、表2-1にリストします。
表2-1 OracleMembershipProviderコンストラクタ
コンストラクタ | 説明 |
---|---|
OracleMembershipProviderコンストラクタ |
|
OracleMembershipProvider静的メソッド
OracleMembershipProvider
静的メソッドを、表2-2にリストします。
表2-2 OracleMembershipProvider静的メソッド
静的メソッド | 説明 |
---|---|
|
|
|
|
OracleMembershipProviderパブリック・プロパティ
OracleMembershipProvider
パブリック・プロパティを、表2-3にリストします。
表2-3 OracleMembershipProviderパブリック・プロパティ
パブリック・プロパティ | 説明 |
---|---|
|
ユーザー情報のグループ化に使用されるアプリケーションの名前を取得または設定します |
|
コマンドが例外で実行を終了するまでに実行可能な秒数を取得します |
|
|
|
パスワードのリセットをユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します |
|
パスワードの取得をユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します |
|
ユーザーがロックされるまでに許可される無効なパスワードまたはパスワードに対する無効な回答の試行回数を取得します |
MinRequiredNonAlphanumericCharacters |
有効なパスワードに存在する必要のある特殊文字の最小数を取得します |
|
パスワードに必要な最小の長さを取得します |
|
|
|
ユーザーがロックされるまでに無効なパスワードまたはパスワードに対する無効な回答の最大試行回数が許可される時間(分)を取得します |
|
パスワードの互換性モードを取得します。 |
|
メンバーシップ・データ・ソースにパスワードを格納するための形式を示す値を取得します |
PasswordStrengthRegularExpression |
パスワードの評価に使用される正規表現を取得します |
|
ユーザーがパスワードをリセットおよび取得する場合にパスワードに対する質問に回答することを要求するような方法でメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します |
|
各ユーザー名の一意の電子メール・アドレスを要求するようにメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します |
OracleMembershipProviderパブリック・メソッド
OracleMembershipProvider
パブリック・メソッドを、表2-4にリストします。
表2-4 OracleMembershipProviderパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
ユーザーのパスワードを更新します |
ChangePasswordQuestionAndAnswer |
ユーザーのパスワードに対する質問および回答を更新します |
|
データベースに新しいユーザーを追加します |
|
データベースからユーザーを削除します |
|
|
|
指定された電子メール・アドレスに一致する電子メール・アドレスを持つユーザーのコレクションを戻します |
|
指定されたユーザー名に一致するユーザーのコレクションを戻します |
|
少なくとも14文字の長さのランダム・パスワードを生成します |
|
データベース内のすべてのユーザーのコレクションを戻します |
|
|
|
アプリケーションに現在アクセスしているユーザー数を戻します |
|
指定されたユーザー名のパスワードをデータベースから戻します |
|
|
|
ユーザーの一意識別子に基づいてデータベースからユーザー情報を戻します(オーバーロード) |
|
指定された電子メール・アドレスに関連付けられているユーザー名を戻します |
|
ASP.NETアプリケーション構成ファイル( |
|
ユーザーのパスワードをリセットし、自動的に生成された新しいパスワードを戻します |
|
|
|
ユーザーをロック解除してユーザーを検証できるようにします |
|
データベース内のユーザーに関する情報を更新します |
|
ユーザーを検証します |
OracleMembershipProviderパブリック・イベント
OracleMembershipProvider
パブリック・イベントを、表2-5にリストします。
表2-5 OracleMembershipProviderパブリック・イベント
パブリック・イベント | 説明 |
---|---|
|
|
このコンストラクタでは、OracleMembershipProvider
クラスの新規インスタンスがインスタンス化されます。
オーバーロード・リスト:
このコンストラクタでは、OracleMembershipProvider
クラスのインスタンスが作成されます。
このコンストラクタでは、OracleMembershipProvider
クラスの新規インスタンスがインスタンス化されます。
宣言
// C# public OracleMembershipProvider();
備考
ASP.NETは、OracleMembershipProvider
コンストラクタを呼び出して、アプリケーションの構成で指定されたとおりにOracleMembershipProvider
クラスのインスタンスを作成します。OracleMembershipProvider
オブジェクトの初期化値は、Initialize
メソッドを通じて渡されます。
このコンストラクタは、アプリケーションで直接使用されることを意図していません。
OracleMembershipProvider
静的メソッドを、表2-6にリストします。
表2-6 OracleMembershipProvider静的メソッド
静的メソッド | 説明 |
---|---|
|
|
|
|
OracleMembershipProvider
パブリック・プロパティを、表2-7にリストします。
表2-7 OracleMembershipProviderパブリック・プロパティ
パブリック・プロパティ | 説明 |
---|---|
|
ユーザー情報のグループ化に使用されるアプリケーションの名前を取得または設定します |
|
コマンドが例外で実行を終了するまでに実行可能な秒数を取得します |
|
|
|
パスワードのリセットをユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します |
|
パスワードの取得をユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します |
|
ユーザーがロックされるまでに許可される無効なパスワードまたはパスワードに対する無効な回答の試行回数を取得します |
MinRequiredNonAlphanumericCharacters |
有効なパスワードに存在する必要のある特殊文字の最小数を取得します |
|
パスワードに必要な最小の長さを取得します |
|
|
|
ユーザーがロックされるまでに無効なパスワードまたはパスワードに対する無効な回答の最大試行回数が許可される時間(分)を取得します |
|
パスワードの互換性モードを取得します。 |
|
メンバーシップ・データ・ソースにパスワードを格納するための形式を示す値を取得します |
PasswordStrengthRegularExpression |
パスワードの評価に使用される正規表現を取得します |
|
ユーザーがパスワードをリセットおよび取得する場合にパスワードに対する質問に回答することを要求するような方法でメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します |
|
各ユーザー名の一意の電子メール・アドレスを要求するようにメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します |
このプロパティでは、ユーザー情報のグループ化に使用されるアプリケーションの名前を取得または設定します。
宣言
// C# public override string ApplicationName{get; set;}
プロパティ値
アプリケーションの名前。applicationName
属性がアプリケーション構成ファイルで指定されていない場合、または値が空の文字列の場合は、このプロパティがアプリケーションの仮想パスに設定されます。
例外
ArgumentException
- 指定されたアプリケーション名が空の文字列またはnull参照です。
ProviderException
- 指定されたアプリケーション名が256文字を超えています。
備考
ApplicationName
プロパティの文字列値は、ユーザー情報の編成に使用されます。ユーザー情報はアプリケーション名ごとに一意に格納されるため、複数のASP.NETアプリケーションが、同じデータベースを使用したり、重複するユーザー名を作成したりできます。このプロパティは、プログラムで設定するか、Webアプリケーション構成ファイルでapplicationName
属性を使用して宣言で設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
ApplicationName
プロパティはスレッドセーフではありません。プログラミング・コードでは、ユーザーにWebアプリケーションでのApplicationName
プロパティの設定を許可しないことをお薦めします。
このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を取得します。
宣言
// C# public int CommandTimeout {get;}
プロパティ値
int
備考
プロバイダをカスタマイズするために、ASP.NET開発者は、commandTimeout
属性を使用してweb.config
ファイルでこのプロパティに整数値を設定できます。
デフォルト値は30秒です。構成ファイルの属性名は、大文字と小文字が区別されます。
このプロパティは、パスワードのリセットをユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します。
宣言
// C# public override bool EnablePasswordReset{get;}
プロパティ値
メンバーシップ・プロバイダがパスワードのリセットをサポートする場合はtrue
を戻し、それ以外の場合はfalse
を戻します。デフォルトはtrue
です。
備考
メンバーシップ
・プロバイダをカスタマイズするために、ASP.NET開発者は、enablePasswordReset
属性を使用してweb.config
ファイルでこのプロパティにブール値を指定できます。値は、ユーザーがResetPassword
メソッドを使用して、現在のパスワードをランダムに生成された新しいパスワードで上書きできるかどうかを示します。構成ファイルの属性名は、大文字と小文字が区別されます。
このプロパティは、パスワードの取得をユーザーに許可するようにメンバーシップ・プロバイダが構成されているかどうかを示します。
宣言
// C# public override bool EnablePasswordRetrieval{get;}
プロパティ値
メンバーシップ・プロバイダがパスワードの取得をサポートするように構成されている場合はtrue
を戻し、それ以外の場合はfalse
を戻します。デフォルトはfalse
です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、enablePasswordRetrieval
属性を使用してweb.config
ファイルでこのプロパティにブール値を設定できます。値は、ユーザーがGetPassword
メソッドを使用してデータベースから現在のパスワードを取得できるかどうかを示します。構成ファイルの属性名は、大文字と小文字が区別されます。
カスタム・メンバーシップ・プロバイダがハッシュされたパスワードをサポートする場合、GetPassword
メソッドは、EnablePasswordRetrieval
プロパティがtrue
で、パスワード形式がHashed
に設定されている場合に例外を戻します。つまり、ハッシュされたパスワードは取得できません。
このプロパティでは、ユーザーがロックされるまでに許可される無効なパスワードまたはパスワードに対する無効な回答の試行回数を取得します。
宣言
// C# public override int MaxInvalidPasswordAttempts{get;}
プロパティ値
ユーザーがロックされるまでに許可される無効なパスワードまたはパスワードに対する無効な回答の試行回数。デフォルトの試行回数は5です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、maxInvalidPasswordAttempts
属性を使用してweb.config
ファイルでこのプロパティに整数値を設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
MaxInvalidPasswordAttempts
プロパティは、PasswordAttemptWindow
プロパティと連動します。PasswordAttemptWindow
プロパティ値(分単位)内の無効なパスワードまたはパスワードに対する無効な質問の入力回数がMaxInvalidPasswordAttempts
プロパティ値以上の場合は、UnlockUser
メソッドによってロック解除されるまでユーザーがロックされます。MaxInvalidPasswordAttempts
値に達する前に、有効なパスワードまたはパスワードに対する有効な回答が入力された場合は、無効な試行回数を追跡するカウンタがゼロにリセットされます。
無効なパスワードおよびパスワードに対する無効な回答の試行は個別に累積されます。たとえば、MaxInvalidPasswordAttempts
プロパティが10に設定されていて、6回の無効なパスワード試行に続いてパスワードに対する無効な回答が3回試行された場合、ユーザーがロックされるには、PasswordAttemptWindow
内であと4回の無効なパスワード試行または7回のパスワードに対する無効な回答試行が行われる必要があります。
RequiresQuestionAndAnswer
プロパティがfalse
に設定されている場合は、パスワードに対する無効な回答の試行が追跡されません。
無効なパスワードの試行およびパスワードに対する無効な回答の試行は、ValidateUser
、ChangePassword
、ChangePasswordQuestionAndAnswer
、GetPassword
、ResetPassword
の各メソッドで追跡されます。
このプロパティでは、有効なパスワードに存在する必要のある特殊文字の最小数を取得します。
宣言
// C# public override int MinRequiredNonAlphanumericCharacters(get;}
プロパティ値
有効なパスワードに存在する必要のある特殊文字の最小数。デフォルト値は1です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、minRequiredNonalphanumericCharacters
属性を使用してweb.config
ファイルでこのプロパティに整数値を設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
MinRequiredNonAlphanumericCharacters
プロパティは、OracleMembershipProvider
オブジェクトの有効なパスワードを作成するために入力する必要のある特殊文字(英数字以外)の最小数を戻します。
このプロパティでは、パスワードに必要な最小の長さを取得します。
宣言
// C# public override int MinRequiredPasswordLength{get;}
プロパティ値
パスワードに必要な最小の長さ。デフォルト値は7です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、minRequiredPasswordLength
属性を使用してweb.config
ファイルでこのプロパティに整数値を設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
minRequiredPasswordLength
プロパティは、OracleMembershipProvider
オブジェクトの有効なパスワードを作成するために入力する必要のある最小限の文字数を取得します。
このプロパティでは、ユーザーがロックされるまでに無効なパスワードまたはパスワードに対する無効な回答の最大試行回数が許可される時間(分単位)を取得します。
宣言
// C# public override int PasswordAttemptWindow{get;}
プロパティ値
ユーザーがロックされるまでに無効なパスワードまたはパスワードに対する無効な回答の最大試行回数が許可される時間(分単位)。デフォルト値は10です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、passwordAttemptWindow
属性を使用してweb.config
ファイルでこのプロパティに整数値を設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
PasswordAttemptWindow
プロパティはMaxInvalidPasswordAttempts
プロパティと連動します。PasswordAttemptWindow
プロパティ値(分単位)内の無効なパスワードまたはパスワードに対する無効な質問の入力回数がMaxInvalidPasswordAttempts
プロパティ値以上の場合は、UnlockUser
メソッドによってロック解除されるまでユーザーがロックされます。MaxInvalidPasswordAttempts
値に達する前に、有効なパスワードまたはパスワードに対する有効な回答が入力された場合は、無効な試行回数を追跡するカウンタがゼロにリセットされます。
無効なパスワードおよびパスワードに対する無効な回答の試行は個別に累積されます。たとえば、MaxInvalidPasswordAttempts
プロパティが10に設定されていて、6回の無効なパスワード試行に続いてパスワードに対する無効な回答が3回試行された場合、ユーザーがロックされるには、PasswordAttemptWindow
値内であと4回の無効なパスワードの試行または7回のパスワードに対する無効な回答試行が行われる必要があります。
RequiresQuestionAndAnswer
プロパティがfalse
に設定されている場合は、パスワードに対する無効な回答の試行が追跡されません。
無効なパスワードの試行およびパスワードに対する無効な回答の試行は、ValidateUser
、ChangePassword
、ChangePasswordQuestionAndAnswer
、GetPassword
、ResetPassword
の各メソッドで追跡されます。
このプロパティは、パスワードの互換性モードを取得します。
宣言
// C# public string PasswordCompatMode {get;}
プロパティ値
string
。
備考
デフォルト値は、Framework20
です。他の指定可能な値は、Framework40
です。文字列値は、大/小文字が区別されます。
プロバイダをカスタマイズするために、ASP.NET開発者は、passwordCompatMode
属性を使用してweb.config
ファイルでこのプロパティに文字列値を設定できます。
passwordFormat
属性がHashed
に設定されると、ユーザーの作成と検証のときに、System.Web.Security.Membership.HashAlgorithmType
プロパティの値は、メンバーシップ・ユーザーのパスワードのハッシュ化に使用されます。
HashAlgorithmType
プロパティの値は、大/小文字が区別される属性hashAlgorithmType
を介してweb.config
ファイルに設定できます。次に例を示します。
<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/>
hashAlgorithmType
属性がweb.config
ファイルに指定されていないと、SHA1
が使用されます。.NET Framework 2.0の場合、hashAlgorithmType
の他の有効な値はMD5
です。
.NET Framework 4では、既存のメンバーシップ・ユーザーが存在しない新しいアプリケーションで、SHA
およびHMACSHA
ハッシュ・アルゴリズム・タイプの他の有効なバージョンを使用する場合、passwordCompatMode
属性はFramework40
に設定する必要があり、hashAlgorithmType
属性は適切なタイプ(SHA256
、HMACSHA256
、HMACSHA384
、HMACSHA512
など)に設定する必要があります。ただし、passwordCompatMode
をFramework40
に設定した場合、SHA1
およびMD5
は引き続きサポートされます。
例
次のweb.config
の例では、hashAlgorithmType
がHMACSHA25
に、passwordCompatMode
がFramework40
に設定されます。
<!-- Enable and customize OracleMembershipProvider settings --> <membership defaultProvider="MyOracleMembershipProvider" hashAlgorithmType="HMACSHA256"> <providers> <add name="MyOracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" ConnectionStringName="my_membership_app_con_string" applicationName="my_membership_app" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="4" minRequiredPasswordLength="9" passwordCompatMode="Framework40" passwordAttemptWindow="8"/> </providers> </membership>
あるhashAlgorithmType
を使用してメンバーシップ・ユーザーを作成したら、同じhashAlgorithmType
を使用してユーザーを検証する必要があります。hashAlgorithmType
が変更されると、そのユーザーの検証は成功しません。このため、特定のアプリケーションでその存続期間中は、同じhashAlgorithmType
を使用する必要があります。
このプロパティでは、メンバーシップ・データ・ソースにパスワードを格納するための形式を示す値を取得します。
宣言
// C# public override MembershipPasswordFormat PasswordFormat{get;}
プロパティ値
データ・ソース内のパスワードの格納形式。形式は、Clear
、Hashed
、Encrypted
など、いずれかのMembershipPasswordFormat
値にできます。デフォルト値はHashed
です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、passwordFormat
属性を使用してweb.config
ファイルでこのプロパティにMembershipPasswordFormat
列挙値を指定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
PasswordFormat
プロパティは、パスワードがClear
、Encrypted
、Hashed
のいずれかの形式で格納されることを示します。形式名は大文字と小文字が区別されます。たとえば、Clear
は有効ですが、clear
は無効です。
このプロパティでは、パスワードの評価に使用される正規表現を取得します。
宣言
// C# public override string PasswordStrengthRegularExpression{get;}
プロパティ値
パスワードの評価に使用される正規表現。デフォルトは空の文字列です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、passwordStrengthRegularExpression
属性を使用してweb.config
ファイルでこのプロパティに文字列値を設定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
PasswordStrengthRegularExpression
プロパティは、パスワードの評価基準として正規表現を取得します。パスワードが基準を満たさない場合は、メンバーシップ・プロバイダによって受け入れられません。
次に例を示します。
passwordStrengthRegularExpression="(?=.{7,})(?=(.*\d){1,})(?=(.*\W){1,})"
前の例のコードは、次の基準に照らしてパスワードを検証します。
少なくとも7文字があります。
少なくとも1つの数字が含まれます。
少なくとも1つの特殊(英数字以外)文字が含まれます。
passwordStrengthRegularExpression
で定義されている最小限のパスワード長は、minRequiredPasswordLength
属性の値以上である必要があります。
passwordStrengthRegularExpression
属性で定義されている特殊(英数字以外)文字の最小数は、minRequiredNonalphanumericCharacters
属性の値以上である必要があります。
passwordStrengthRegularExpression
属性は、ResetPassword
メソッドから自動的に生成されたパスワードでは使用されません。
このプロパティでは、ユーザーがパスワードをリセットおよび取得する場合にパスワードに対する質問に回答することを要求するような方法でメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します。
宣言
// C# public override bool RequiresQuestionAndAnswer{get;}
プロパティ値
パスワードのリセットおよび取得に対してパスワードに対する回答が必要な場合はtrue
を戻し、それ以外の場合はfalse
を戻します。デフォルト値はtrue
です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、requiresQuestionAndAnswer
属性を使用してweb.config
ファイルでこのプロパティにブール値を設定できます。値は、ユーザーがGetPassword
メソッドを使用してパスワードを取得またはResetPassword
メソッドを使用してパスワードをリセットするために、パスワードに対する回答を入力する必要があるかどうかを示します。構成ファイルの属性名は、大文字と小文字が区別されます。
このプロパティでは、各ユーザー名の一意の電子メール・アドレスを要求するようにメンバーシップ・プロバイダが構成されているかどうかを示す値を取得します。
宣言
// C# public override bool RequiresUniqueEmail{get;}
プロパティ値
メンバーシップ・プロバイダが一意の電子メール・アドレスを必要とする場合はtrue
を戻し、それ以外の場合はfalse
を戻します。デフォルト値はfalse
です。
備考
メンバーシップ・プロバイダをカスタマイズするために、ASP.NET開発者は、requiresUniqueEmail
属性を使用してweb.config
ファイルでRequiresUniqueEmail
プロパティにブール値を指定できます。構成ファイルの属性名は、大文字と小文字が区別されます。
OracleMembershipProvider
パブリック・メソッドを、表2-8にリストします。
表2-8 OracleMembershipProviderパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
ユーザーのパスワードを更新します |
ChangePasswordQuestionAndAnswer |
ユーザーのパスワードに対する質問および回答を更新します |
|
データベースに新しいユーザーを追加します |
|
データベースからユーザーを削除します |
|
|
|
指定された電子メール・アドレスに一致する電子メール・アドレスを持つユーザーのコレクションを戻します |
|
指定されたユーザー名に一致するユーザーのコレクションを戻します |
|
少なくとも14文字の長さのランダム・パスワードを生成します |
|
データベース内のすべてのユーザーのコレクションを戻します |
|
|
|
アプリケーションに現在アクセスしているユーザー数を戻します |
|
指定されたユーザー名のパスワードをデータベースから戻します |
|
|
|
ユーザーの一意識別子に基づいてデータベースからユーザー情報を戻します(オーバーロード) |
|
指定された電子メール・アドレスに関連付けられているユーザー名を戻します |
|
ASP.NETアプリケーション構成ファイル( |
|
ユーザーのパスワードをリセットし、自動的に生成された新しいパスワードを戻します |
|
|
|
ユーザーをロック解除してユーザーを検証できるようにします |
|
データベース内のユーザーに関する情報を更新します |
|
ユーザーを検証します |
このメソッドは、ユーザーのパスワードを更新します。
宣言
// C# public override bool ChangePassword(string userName, string oldPassword, string newPassword);
パラメータ
userName
パスワードを更新する対象のユーザー。
oldPassword
指定されたユーザーの現在のパスワード。
newPassword
指定されたユーザーの新しいパスワード。
戻り値
パスワードが正常に更新された場合はtrue
を戻し、それ以外の場合はfalse
を戻します。
例外
ArgumentNullException
- userName
、oldPassword
またはnewPassword
パラメータがnullです。
System.Web.Security.MembershipPasswordException
- userName
がメンバーシップ・データベースに見つかりませんでした。
System.Configuration.Provider.ProviderException
- データベースに新しいパスワードを設定しているときにエラーが発生しました。
例外
- 処理されない例外が発生しました。
ArgumentException
- 次のいずれかの条件が存在します。
userName
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。
oldPassword
パラメータが空の文字列であるか、128文字を超えています。
newPassword
パラメータが、空の文字列である、128文字(エンコードされたバージョンを含む)より長い、MinRequiredPasswordLength
プロパティの値より小さい、英数字文字以外の文字数がMinRequiredNonAlphanumericCharacters
プロパティの値より少ない、PasswordStrengthRegularExpression
プロパティで定義された正規表現と一致しない、のいずれかです。
パスワード変更操作がValidatingPassword
イベントのサブスクライバによって取り消され、FailureInformation
プロパティがnull参照でした。
備考
ChangePassword
メソッドは、指定されたユーザー名とパスワードが有効で、パスワードが正しく更新された場合にtrue
を戻します。それ以外の場合はfalse
を戻します。
このメソッドは、ユーザーのパスワードに対する質問と回答を更新します。
宣言
// C# public override bool ChangePasswordQuestionAndAnswer(string userName, string password, string newPasswordQuestion, string newPasswordAnswer);
パラメータ
userName
パスワードに対する質問と回答が変更される対象のユーザー。
password
指定されたユーザーのパスワード。
newPasswordQuestion
指定されたユーザーのパスワードに対する新しい質問。
newPasswordAnswer
指定されたユーザーのパスワードに対する新しい回答。
戻り値
パスワードに対する質問と回答が正常に更新された場合はtrue
を戻し、それ以外の場合はfalse
を戻します。
例外
ArgumentException
- 次のいずれかの条件が存在します。
userName
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。
password
パラメータが空の文字列であるか、128文字を超えています。
newPasswordQuestion
パラメータが空の文字列であるか、256文字を超えています。
newPasswordAnswer
パラメータが空の文字列であるか、128文字(エンコードされたバージョンを含む)を超えています。
備考
指定されたユーザー名とパスワードが有効で、パスワードに対する質問と回答が正常に更新された場合、このメソッドはtrueを戻します。それ以外の場合はfalse
を戻します。
このメソッドは、データベースに新しいユーザーを追加します。
宣言
// C# public override MembershipUser CreateUser(string userName, string password, string emailAddress, string passwordQuestion, string passwordAnswer, bool isApproved, Object providerUserKey, out MembershipCreateStatus status);
パラメータ
userName
新しいユーザーのユーザー名。
password
新しいユーザーのパスワード。
emailAddress
新しいユーザーの電子メール・アドレス。
passwordQuestion
新しいユーザーのパスワードに対する質問。
passwordAnswer
新しいユーザーのパスワードに対する回答。
isApproved
新しいユーザーが検証を承認されるかどうかを示すブール値。
providerUserKey
データベースから取得される新しいユーザーの一意識別子。
status
ユーザーが正常に作成されたかどうかを示すMembershipCreateStatus
列挙値。
戻り値
新規に作成されたユーザーの情報が移入されるMembershipUser
オブジェクト。
備考
このメソッドは、新規に作成されたユーザーの情報が移入されたMembershipUser
オブジェクトを戻します。status
パラメータは、ユーザーが正常に作成されたかどうかを示すMembershipCreateStatus
値を戻します。CreateUser
メソッドに失敗した場合、MembershipCreateStatus
メンバーは失敗の原因を示します。
MembershipCreateStatus列挙
MembershipCreateStatus
列挙値を、表2-9にリストします。
表2-9 MembershipCreateStatus列挙値
メンバー名 | 説明 |
---|---|
|
アプリケーションの電子メール・アドレスがすでにデータベースに存在します。 |
|
アプリケーションのプロバイダ・ユーザー・キーがすでにデータベースに存在します。 |
|
アプリケーションのユーザー名がすでにデータベースに存在します。 |
|
パスワードに対する回答が正しい形式ではありません。 |
|
電子メール・アドレスが正しい形式ではありません。 |
|
パスワードが正しい形式ではありません。 |
|
プロバイダ・ユーザー・キーが無効なタイプまたは形式です。 |
|
パスワードに対する質問が正しい形式ではありません。 |
|
ユーザー名がデータベースに見つかりませんでした。 |
|
プロバイダにより、他の |
|
ユーザーが正常に作成されました。 |
|
プロバイダ定義の理由により、ユーザーが作成されませんでした。 |
このメソッドは、データベースからユーザーを削除します。
宣言
// C# public override bool DeleteUser(string userName, bool deleteAllRelatedData);
パラメータ
userName
削除するユーザーの名前。
deleteAllRelatedData
ユーザーに関連するすべてのデータをデータベースから削除するかどうかを示すブール値。
戻り値
ユーザーが正常に削除された場合はtrue
を戻し、それ以外の場合、またはユーザーがデータベースに存在しない場合はfalse
を戻します。
例外
ArgumentException
- userName
パラメータが空の文字列であるか、カンマを含むか、256文字を超えています。
ArgumentNullException
- userName
パラメータがnull参照です。
備考
先頭および末尾の空白はuserName
パラメータ値から削除されます。deleteAllRelatedData
がtrue
の場合は、ユーザーがOracleメンバーシップ・データベースに存在しない場合でも、ロール、プロファイルおよびパーソナライズに関するデータなど、データベース内のユーザーに関連するデータもすべて削除されます。
このメソッドは、指定された電子メール・アドレスに一致する電子メール・アドレスを持つユーザーのコレクションを戻します。
宣言
// C# public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords);
パラメータ
emailToMatch
検索する電子メール・アドレス。
pageIndex
戻す結果のページの索引。PageIndex
はゼロベースです。
pageSize
戻す結果のページ・サイズ。
totalRecords
一致するユーザーの総数。
戻り値
MembershipUser
オブジェクトを含むMembershipUserCollection
オブジェクトを戻します。
例外
ArgumentException
- 次のいずれかの条件が存在します。
emailToMatch
パラメータが空の文字列であるか、256文字を超えています。
pageIndex
パラメータが0未満です。
pageSize
パラメータが1未満であるか、ページ上限がInt32.MaxValue
を超えています。
ArgumentNullException
- emailToMatch
、pageIndex
、pageSize
またはtotalRecords
パラメータがnullです。
備考
先頭および末尾の空白はemailToMatch
パラメータ値から削除されます。FindUsersByEmail
メソッドから戻される結果は、pageIndex
パラメータとpageSize
パラメータによって制約されます。pageSize
パラメータは、MembershipUserCollection
オブジェクトで戻すMembershipUser
オブジェクトの最大数を示します。pageIndex
パラメータは、結果のどのページを戻すかを示します。値はゼロベースであるため、ゼロは最初のページを示します。totalRecords
パラメータは、emailToMatch
値に一致したユーザーの総数を表す出力パラメータです。
OracleMembershipProvider
クラスは、パーセント文字(%)をワイルドカードとして受け入れることにより、拡張検索をサポートします。
このメソッドは、指定されたユーザー名に一致するユーザーのコレクションを戻します。
宣言
// C# public override MembershipUserCollection FindUsersByEmail(string userNameToMatch, int pageIndex, int pageSize, out int totalRecords);
パラメータ
userNameToMatch
検索するユーザー名。
pageIndex
戻される結果ページのゼロベース索引。
pageSize
戻される結果ページのサイズ。
totalRecords
一致するユーザーの総数。
戻り値
MembershipUser
オブジェクトを含むMembershipUserCollection
オブジェクトを戻します。
例外
ArgumentException
- 次のいずれかの条件が存在します。
userNameToMatch
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。
pageIndex
パラメータが0未満です。
pageSize
パラメータが1未満であるか、ページ上限がInt32.MaxValue
を超えています。
注意: ページ下限は(pageIndex * pageSize )であり、ページ上限は(pageIndex *pageSize )+(pageSize - 1)です。 |
ArgumentNullException
- userNameToMatch
、pageIndex
、pageSize
またはtotalRecords
パラメータがnullです。
備考
先頭および末尾の空白はuserNameToMatch
パラメータ値から削除されます。
FindUsersByName
メソッドから戻される結果は、pageIndex
パラメータとpageSize
パラメータによって制約されます。pageSize
パラメータは、MembershipUserCollection
オブジェクトで戻すMembershipUser
オブジェクトの最大数を示します。pageIndex
パラメータは、結果のどのページを戻すかを示します。値はゼロベースであるため、ゼロは最初のページを示します。totalRecords
パラメータは、userNameToMatch
値に一致したユーザーの総数を表す出力パラメータです。
OracleMembershipProvider
クラスは、パーセント文字(%)をワイルドカードとして受け入れることにより、拡張検索をサポートします。
このメソッドは、長さが14文字以上のランダム・パスワードを生成します。
宣言
// C# public virtual string GeneratePassword( );
戻り値
長さが14文字以上のパスワードのランダムな文字列。
備考
OracleMembershipProvider
オブジェクトは、GeneratePassword
メソッドを呼び出して、14文字以上、128文字未満の長さのランダムに生成されたパスワードを取得します。
生成されたパスワードには、英数字と!@#$%^&*()_-+=[{]};:<>|./?の記号のみ含まれています。隠し文字や印刷不能な制御文字は、生成されたパスワードに含まれていません。
MinRequiredPasswordLength
プロパティに対して指定された値が14より大きい場合、GeneratePassword
プロパティから戻されるパスワードの長さは、MinRequiredPasswordLength
プロパティの値です。それ以外の場合、長さは14文字です。
GeneratePassword
メソッドによって生成されたランダム・パスワードは、PasswordStrengthRegularExpression
プロパティの正規表現を渡すことが保証されていません。ただし、ランダム・パスワードは、MinRequiredPasswordLength
およびMinRequiredNonAlphanumericCharacters
プロパティで設定された基準を満たします。
このメソッドは、データベース内のすべてのユーザーのコレクションを戻します。
宣言
// C# public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords);
パラメータ
pageIndex
戻す結果のページのゼロベース索引。
pageSize
戻す結果のページ・サイズ。
totalRecords
ユーザーの総数。
戻り値
MembershipUser
オブジェクトを含むMembershipUserCollection
オブジェクト。
例外
ArgumentException
- pageIndex
パラメータが0未満です。または、pageSize
パラメータが1未満であるか、ページ上限がInt32.MaxValue
を超えています。
注意: ページ下限は(pageIndex * pageSize )であり、ページ上限は(pageIndex *pageSize )+(pageSize - 1)です。 |
ArgumentNullException
- pageIndex
、pageSize
またはtotalRecords
パラメータがnullです。
備考
GetAllUsers
メソッドから戻される結果は、pageIndex
パラメータとpageSize
パラメータによって制約されます。pageSize
パラメータは、MembershipUserCollection
オブジェクトで戻すMembershipUser
オブジェクトの最大数を示します。pageIndex
パラメータは、結果のどのページを戻すかを示します。値はゼロベースであるため、ゼロは最初のページを示します。totalRecords
パラメータは、構成されたapplicationName
のユーザーの総数を表す出力パラメータです。
このメソッドは、アプリケーションに現在アクセスしているユーザー数を戻します。
宣言
// C# public override int GeNumberOfUsersOnline();
戻り値
アプリケーションに現在アクセスしているユーザー総数を示す整数値。
備考
GetNumberOfUsersOnline
メソッドは、現在のアプリケーションのユーザーのうち、最後のアクティビティ日時が現在の日時からMembership.UserIsOnlineTimeWindow
プロパティの値(分単位)を引いた値より大きいユーザーの数を戻します。
カウントには、構成されたapplicationName
に関連付けられているユーザーのみ含まれます。
このメソッドは、指定されたユーザー名のパスワードをデータベースから戻します。
宣言
// C# public override string GetPassword(string userName, string passwordAnswer);
パラメータ
userName
パスワードを取得する対象のユーザー。
passwordAnswer
ユーザーのパスワードに対する回答。
戻り値
指定したユーザー名のパスワード文字列。
例外
ArgumentNullException
- userName
パラメータがnullであるか、RequiresQuestionAndAnswer
プロパティがtrue
のときにpasswordAnswer
パラメータがnullです。
System.Web.Security.MembershipPasswordException
- passwordAnswer
パラメータが無効であるか、userName
で識別されるユーザーがロックされています。
System.Configuration.Provider.ProviderException
- userName
パラメータがメンバーシップ・データベースに見つからないか、メンバーシップ・データベースからパスワードを取得するときにエラーが発生しました。
NotSupportedException
- EnablePasswordRetrieval
プロパティがfalseに設定されています。
ArgumentException
- 次のいずれかの条件が存在します。
userName
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。
passwordAnswer
パラメータが空の文字列であり、RequiresQuestionAndAnswer
プロパティがtrue
です。または、passwordAnswer
パラメータが128文字(エンコードされたバージョンを含む)を超えています。
備考
先頭および末尾の空白はuserName
パラメータ値とpasswordAnswer
パラメータ値から削除されます。
GetPassword
メソッドは、EnablePasswordRetrieval
プロパティがtrue
に設定されていることを必要とします。ただし、PasswordFormat
プロパティがHashed
に設定されている場合は、プロバイダの初期化時にProviderException
がスローされます。つまり、GetPassword
メソッドは、Hashed
パスワードを取得できません。デフォルトでは、EnablePasswordRetrieval
プロパティはfalse
に設定されます。
RequiresQuestionAndAnswer
プロパティがtrue
に設定され、GetPassword
メソッドに対してパスワードに対する不正な回答が指定された場合は、パスワードに対する無効な回答の試行を追跡する内部カウンタが1つ増やされます。これにより、ユーザーがロックされ、UnlockUser
メソッドの呼び出しによってロック・ステータスがクリアされるまでログオンできなくなることがあります。パスワードに対する正しい回答が指定され、ユーザーが現在ロックされていない場合は、パスワードに対する無効な回答の試行を追跡する内部カウンタがゼロにリセットされます。
このメソッドは、ユーザーの一意識別子に基づいて、ユーザー情報をデータベースから戻します。
オーバーロード・リスト:
このメソッドは、指定された一意識別子に基づいて、ユーザー情報をデータベースから戻します。
このメソッドは、指定されたユーザー名に基づいて、ユーザー情報をデータベースから戻します。
このメソッドは、指定された一意識別子に基づいて、ユーザー情報をデータベースから戻します。
宣言
// C# public override MembershipUser GetUser(Object providerUserKey, bool userIsOnline);
パラメータ
providerUserKey
情報が取得される対象のユーザーの一意識別子。
userIsOnline
メソッドがユーザーの最後のアクティビティの日時スタンプを更新するかどうかを示すブール値。値がtrue
に設定されている場合は、更新されます。それ以外の場合、メソッドは最後のアクティビティの日時スタンプを更新しないでユーザー情報を戻します。
戻り値
指定されたユーザーの情報がデータベースから移入されるMembershipUser
オブジェクト。
例外
ArgumentException
- providerUserKey
パラメータがGUID
型ではありません。
ArgumentNullException
- providerUserKey
パラメータがnullです。
備考
GetUser
メソッドは、ユーザーの最後のアクティビティ日時スタンプを更新するオプションを提供します。
GetUser
メソッドは、指定されたユーザーに関する情報が移入されたMembershipUser
オブジェクトを戻します。ユーザー名がデータベースに見つからない場合、GetUser
メソッドはnull参照を戻します。
このメソッドは、指定されたユーザー名に基づいて、ユーザー情報をデータベースから戻します。
宣言
// C# public override MembershipUser GetUser(string userName, bool userIsOnline);
パラメータ
userName
情報を取得する対象のユーザーの名前。
userIsOnline
メソッドがユーザーの最後のアクティビティの日時スタンプを更新するかどうかを示すブール値。値がtrue
に設定されている場合は、更新されます。それ以外の場合、メソッドは最後のアクティビティの日時スタンプを更新しないでユーザー情報を戻します。
戻り値
指定されたユーザーの情報がデータベースから移入されるMembershipUser
オブジェクト。
例外
ArgumentException
- userName
パラメータが空の文字列であるか、カンマを含むか、256文字を超えています。
ArgumentNullException
- userName
パラメータがnullです。
備考
GetUser
メソッドは、ユーザーの最後のアクティビティ日時スタンプを更新するオプションを提供します。
GetUser
メソッドは、指定されたユーザーに関する情報が移入されたMembershipUser
オブジェクトを戻します。ユーザー名がデータベースに見つからない場合、GetUser
メソッドはnull参照を戻します。
このメソッドは、指定された電子メール・アドレスに関連付けられているユーザー名を戻します。
宣言
// C#
public override string GetUserNameByEmail(string emailAddress);
パラメータ
emailAddress
検索する電子メール・アドレス。
戻り値
指定された電子メール・アドレスに関連付けられているユーザー名。一致が見つからない場合は、null参照が戻されます。
例外
ArgumentException
- 電子メール・アドレスが256文字を超えています。
System.Configuration.Provider.ProviderException
- 同じ電子メール・アドレスを持つ複数のユーザーがデータベースに存在し、RequiresUniqueEmail
プロパティがtrue
です。
備考
RequiresUniqueEmail
プロパティの値がtrue
の場合は、一意の電子メール・アドレスが各ユーザー名に関連付けられている必要があります。
このメソッドは、OracleMembership
プロバイダを、ASP.NETアプリケーション構成ファイル(web.config
)で指定されたプロパティ値で初期化します。
宣言
// C# public override void Initialize(string name, NameValueCollection config);
パラメータ
name
初期化するOracleMembership
プロバイダ・インスタンスの名前。
config
このプロバイダの構成で指定されているプロバイダ固有属性を表す名前/値のペアのコレクション。
例外
ArgumentNullException
- config
パラメータがnull値です。
InvalidOperationException
- プロバイダが初期化された後に、そのプロバイダに対してInitialize
メソッドを呼び出そうとしました。
HttpException
- 現在の信頼レベルが「低」未満です。
System.Configuration.Provider.ProviderException
- 次のいずれかがアプリケーション構成ファイルに当てはまります。
enablePasswordRetrieval
、enablePasswordReset
、requiresQuestionAndAnswer
またはrequiresUniqueEmail
属性がブール値以外の値に設定されています。
maxInvalidPasswordAttempts
またはpasswordAttemptWindow
属性が、正の整数以外の値に設定されています。
minRequiredPasswordLength
属性が正の整数でない値に設定されているか、値が128を超えています。
minRequiredNonalphanumericCharacters
属性が負の整数に設定されているか、値が128を超えています。
passwordStrengthRegularExpression
属性の値が有効な正規表現ではありません。
applicationName
属性の値が256文字を超えています。
passwordFormat
属性の値が無効なMembershipPasswordFormat
列挙値です。
passwordFormat
属性がHashed
に設定され、enablePasswordRetrieval
属性がtrue
に設定されています。
passwordFormat
属性がEncrypted
に設定され、machineKey
構成要素がdecryptionKey
属性に対してAutoGenerate
を指定しています。
connectionStringName
属性が空であるか、アプリケーション構成ファイルに存在しません。
connectionStringName
属性値の接続文字列の値が空であるか、指定されたconnectionStringName
がアプリケーション構成ファイルに存在しません。
commandTimeout
属性の値が負の整数に設定されています。
このOracleMembershipProvider
インスタンスのアプリケーション構成ファイルには、認識されていない属性が含まれます。
備考
Initialize
メソッドは、アプリケーションによって直接呼び出されることを意図していません。
このメソッドは、ユーザーのパスワードをリセットし、自動的に生成された新しいパスワードを戻します。
宣言
// C# public override string ResetPassword(string userName, string passwordAnswer);
パラメータ
userName
パスワードをリセットする対象のユーザー。
passwordAnswer
指定されたユーザーのパスワードに対する回答。
戻り値
指定されたユーザーの新しいパスワード。
例外
ArgumentNullException
- userName
パラメータがnull参照であるか、RequiresQuestionAndAnswer
プロパティがtrue
のときにpasswordAnswer
パラメータがnullです。
System.Web.Security.MembershipPasswordException
- passwordAnswer
パラメータが無効であるか、userName
パラメータで識別されるユーザーがロックされています。
ArgumentException
- 次のいずれかの条件が存在します。
userName
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。
passwordAnswer
パラメータが空の文字列であり、RequiresQuestionAndAnswer
プロパティがtrue
です。または、passwordAnswer
パラメータが128文字(エンコードされたバージョンを含む)を超えています。
System.Configuration.Provider.ProviderException
- 次のいずれかの条件が存在します。
userName
がメンバーシップ・データベースに見つかりませんでした。
パスワード・リセット操作がValidatingPassword
イベントのサブスクライバによって取り消され、FailureInformation
プロパティがnull参照でした。
メンバーシップ・データベースでのパスワードのリセット時にエラーが発生しました。
NotSupportedException
- EnablePasswordReset
プロパティがfalse
に設定されています。
例外
- 処理されない例外が発生しました。
備考
先頭および末尾の空白はuserName
パラメータ値とpasswordAnswer
パラメータ値から削除されます。
ResetPassword
メソッドは、PasswordFormat
プロパティがHashed
に設定されている場合に最もよく使用されます。ユーザーが、ハッシュ形式のパスワードを忘れた場合は、パスワードを取得できません。ただし、ユーザーがパスワードに対する正しい回答を提供した場合、プロバイダはパスワードを新しい自動生成パスワードにリセットできます。ResetPassword
メソッドでは、EnablePasswordReset
プロパティがtrue
に設定されている必要があります。パスワードに対する不正な回答がResetPassword
メソッドに指定されている場合は、無効なパスワードの試行を追跡する内部カウンタが1つ増やされます。これにより、ユーザーがロックされ、UnlockUser
メソッドの呼び出しによってロック・ステータスがクリアされるまでログオンできなくなることがあります。パスワードに対する正しい回答が指定され、ユーザーが現在ロックされていない場合は、パスワードに対する無効な回答の試行を追跡する内部カウンタがゼロにリセットされます。
ResetPassword
メソッドによって生成されたランダム・パスワードは、PasswordStrengthRegularExpression
プロパティの正規表現を渡すことが保証されていません。ただし、ランダム・パスワードは、MinRequiredPasswordLength
およびMinRequiredNonAlphanumericCharacters
プロパティで設定された基準を満たします。
このメソッドは、ユーザーをロック解除してユーザーを検証できるようにします。
宣言
// C#
public override bool UnLockUser(string userName);
パラメータ
userName
ロック解除するユーザーの名前。
戻り値
ユーザーが正常にロック解除された場合はtrue
を戻し、それ以外の場合はfalse
を戻します。
例外
ArgumentException
- userName
パラメータが空の文字列であるか、カンマを含むか、256文字を超えています。
ArgumentNullException
- userName
パラメータがnullです。
備考
先頭および末尾の空白はuserName
パラメータ値から削除されます。
このメソッドは、データベース内のユーザーに関する情報を更新します。
宣言
// C#
public override void UpdateUser(MembershipUser membershipUser);
パラメータ
membershipUser
ユーザー情報が移入されるMembershipUser
オブジェクト。
例外
ArgumentException
- 次のいずれかの条件が存在します。
membershipUser
のuserName
プロパティが空の文字列であるか、カンマが含まれているか、256文字を超えています。
membership User
のemail
プロパティが空の文字列であり、Requires Unique Em ail
プロパティがtrue
に設定されているか、mail
プロパティが256文字を超えています。
Argument Null Exception
- membership User
パラメータがnullであるか、membership User
パラメータのsurname
またはmail
プロパティがnullです。
System.Configuration.Provider.ProviderException
- 次のいずれかの条件が存在します。
membership User
パラメータのsurname
プロパティがメンバーシップ・データベースに見つかりません。
membership User
パラメータのmail
プロパティがメンバーシップ・データベース内の既存の電子メール・アドレスと等しく、Requires Unique Em ail
プロパティがtrue
に設定されます。
メンバーシップ・データベースでのユーザーの更新時にエラーが発生しました。
備考
指定されたユーザーのMail
、Comment
、IsApproved
、Last Login Date
およびLastActivityDate
プロパティ値は、変更してからUpdateUser
メソッドで更新できます。ただし、ユーザーのパスワードは変更および更新できません。ユーザーのパスワードを更新するには、MembershipUser
クラスのChangePassword
メソッドを使用します。
このメソッドはユーザーを検証します。
宣言
// C# public override bool ValidateUser(string userName, string password);
パラメータ
userName
検証するユーザーの名前。
password
指定されたユーザーのパスワード。
戻り値
指定されたユーザー名とパスワードが有効な場合はtrue
を戻し、有効でないかユーザーがデータベースに存在しない場合はfalse
を戻します。
備考
先頭および末尾の空白はuserName
パラメータ値とpassword
パラメータ値から削除されます。
ユーザーが正常に検証された場合、最後のアクティビティ日とサインイン日の値がデータベース内で現在の日時に更新されます。
ValidateUser
メソッドは、isApproved
パラメータをfalse
に設定して作成された任意のユーザーについてfalse
を戻します。
ValidateUser
メソッドに対して不正なパスワードが指定された場合は、無効なパスワードの試行を追跡する内部カウンタが1つ増やされます。これにより、ユーザーがロックされ、UnlockUser
メソッドの呼び出しによってロック・ステータスがクリアされるまでログオンできなくなることがあります。正しいパスワードが指定され、ユーザーが現在ロックされていない場合は、無効なパスワードおよびパスワードに対する無効な回答の試行を追跡する内部カウンタがゼロにリセットされます。
OracleMembershipProvider
パブリック・イベントを、表2-10にリストします。