SQLMemberShipProviderを使用しています。パスワード変更後にMembershipProviderの検証が失敗する
ユーザ名とパスワードを入力すると、次のコードがmembershipProvider.ValidateUser(myUserName, myPassword)
に実行され、ユーザが有効であることを示すtrue
が返されます。
私は、次のコードを使用してパスワードをリセット:私は私のユーザー名と新しい変更したパスワードを入力したときに
var username = membershipProvider.GetUser(myUserName, false);
username.ChangePassword(username.ResetPassword(), newPassword);
さて、以下は再びmembershipProvider.ValidateUser(myUserName, newPassword)
を実行しますが、今回は検証が失敗しました。
ValidateUser
の両方の呼び出しで同じプロバイダを使用しているため、これはわかりません。元のパスワードがもはや有効でなくなったため、パスワードが変更されたように見えました。
パスワード形式はハッシュ化され、IsLockedはfalseであり、IsApprovedはtrueです。
こんにちはAbhishek、enablePasswordResetがtrueに設定されています – p0enkie
これはPEBKACの問題です。使用した新しいパスワードがプロバイダで設定されたパスワードの正規表現に準拠していないため、検証に失敗しました。 Regexを満たす何かにこのパスワードを変更すると、期待どおりに動作します。 – p0enkie