2.1.4.9 PasswordCompatMode

このプロパティは、パスワードの互換性モードを取得します。

宣言

// 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属性は適切なタイプ(SHA256HMACSHA256HMACSHA384HMACSHA512など)に設定する必要があります。ただし、passwordCompatModeFramework40に設定した場合、SHA1およびMD5は引き続きサポートされます。

次のweb.configの例では、hashAlgorithmTypeHMACSHA25に、passwordCompatModeFramework40に設定されます。

<!-- 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を使用する必要があります。