次の方法で共有


ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer メソッド

定義

Active Directory ストアでユーザーのパスワードの質問と解答を更新します。

public:
 override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean

パラメーター

username
String

パスワードの質問と回答を変更するユーザー。

password
String

指定したユーザーのパスワード。

newPasswordQuestion
String

指定したユーザーの新しいパスワードの質問。

newPasswordAnswer
String

指定したユーザーの新しいパスワードの回答。

戻り値

更新が正常に実行された場合は true、それ以外の場合は false。 パスワードが無効であったり、ユーザーがロックアウトされていたり、ユーザーが Active Directory データ ストアに存在していない場合にも false が返されます。

例外

管理者がパスワードの質問と解答のフィールドを Active Directory スキーマの属性にマップしていません。

username が空であるか、ユーザー名の最大長 (通常は 256 文字) を超えています。

- または -

username はコンマを含んでいます。

- または -

ユーザー名は userPrincipalName 属性にマップされており、username パラメーターに円記号が含まれています。

- または -

password は長さゼロの文字列です。

- または -

password がパスワードの最大長 (通常は 128 文字) を超えています。

- または -

newPasswordQuestion が空で、RequiresQuestionAndAnswer プロパティ値が true です。

- または -

newPasswordQuestion が 256 文字を超えています。

- または -

解答を暗号化した後の newPasswordAnswer が 128 文字を超えています。

usernamenullです。

または

passwordnullです。

- または -

newPasswordQuestionnull で、RequiresQuestionAndAnswer プロパティが true です。

- または -

newPasswordAnswernull で、RequiresQuestionAndAnswer プロパティが true です。

machineKey 要素 (ASP.NET 設定スキーマ) 構成要素は、自動生成されたマシン暗号化キーを示します。 ActiveDirectoryMembershipProvider を使用してパスワードの解答を格納するには、machineKey 要素 (ASP.NET 設定スキーマ) 要素の decryptionKey 属性を明示的に設定する必要があります。

ChangePasswordQuestionAndAnswer(String, String, String, String) インスタンスが初期化される前に ActiveDirectoryMembershipProvider メソッドが呼び出されました。

注釈

メソッドは、 クラスによって呼び出され ActiveDirectoryMembershipUser 、Active Directory メンバーシップ ストア内のユーザーのパスワードの質問と回答を更新します。

パスワードの質問と回答を要求すると、ユーザーのパスワードをリセットするときにセキュリティ層が強化されます。 ユーザー名を作成するときに、ユーザーは後で忘れたパスワードをリセットするために使用できる質問と回答を指定できます。 メソッドは ChangePasswordQuestionAndAnswer 、メンバーシップ ユーザーのパスワードの質問と回答を新しい値に更新します。

メソッドを使用するには、アプリケーションの ChangePasswordQuestionAndAnswer 構成ファイルで次の追加属性を設定する必要があります。

  • requiresQuestionAndAnswer は、true である必要があります。

  • attributeMapPasswordQuestionattributeMapPasswordAnswer は、Active Directory スキーマの属性にマップする必要があります。

上記の条件が満たされない場合は、初期化時に が ProviderException スローされます。

インスタンスはActiveDirectoryMembershipProvider、 パラメーターと password パラメーターに指定されたusername資格情報を使用して Active Directory データ ストアに接続し、ユーザー名とパスワードの組み合わせを検証します。 質問と回答の実際の更新は、プロバイダーの構成された接続資格情報を使用して実行されます。

メソッドに正しくないパスワードが指定された ChangePasswordQuestionAndAnswer 場合、ディレクトリ サーバーは、無効なパスワード試行を追跡するカウンターをインクリメントします。 これにより、ユーザーがロックされ、メソッドの呼び出 UnlockUser しによってロック状態がクリアされるか、ディレクトリで指定されたロックされた期間が経過するまでログオンできなくなる可能性があります。

質問と回答の更新が成功し、 プロパティが EnablePasswordReset の場合、 trueユーザーの不適切なパスワード応答追跡カウンターがリセットされます。

パスワードの応答は、Active Directory データ ストアに格納される前に、 メソッドを使用して EncryptPassword 暗号化されます。 暗号化キーとアルゴリズムは、 machineKey 要素 (ASP.NET 設定スキーマ) 構成要素によって指定されます。 machineKey 要素 (ASP.NET 設定スキーマ) 要素の decryption 属性を指定する必要があります。クラスは自動生成された暗号化キーをActiveDirectoryMembershipProviderサポートしていません。

パスワードの質問の最大長は 256 文字です。 パスワード応答の最大長は 128 文字です。

先頭と末尾のスペースは、 を除く passwordすべてのパラメーター値からトリミングされます。

プロバイダーは、接続文字列で指定された検索ポイントから始まるユーザー名のサブツリー検索を実行して、更新するユーザー インスタンスを検索します。 接続文字列の ActiveDirectoryMembershipProvider 詳細については、クラスのトピックを参照してください。

適用対象

こちらもご覧ください