public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPwdQuestion, string newPwdAnswer)
{
if (username != null) username = username.Trim ();
if (newPwdQuestion != null) newPwdQuestion = newPwdQuestion.Trim ();
if (newPwdAnswer != null) newPwdAnswer = newPwdAnswer.Trim ();
CheckParam ("username", username, 256);
if (RequiresQuestionAndAnswer)
CheckParam ("newPwdQuestion", newPwdQuestion, 128);
if (RequiresQuestionAndAnswer)
CheckParam ("newPwdAnswer", newPwdAnswer, 128);
using (DbConnection connection = CreateConnection ()) {
PasswordInfo pi = ValidateUsingPassword (username, password);
if (pi != null) {
string db_passwordAnswer = EncodePassword (newPwdAnswer, pi.PasswordFormat, pi.PasswordSalt);
DbCommand command = factory.CreateCommand ();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = @"aspnet_Membership_ChangePasswordQuestionAndAnswer";
AddParameter (command, "@ApplicationName", ApplicationName);
AddParameter (command, "@UserName", username);
AddParameter (command, "@NewPasswordQuestion", newPwdQuestion);
AddParameter (command, "@NewPasswordAnswer", db_passwordAnswer);
DbParameter returnValue = AddParameter (command, "@ReturnVal", ParameterDirection.ReturnValue, DbType.Int32, null);
command.ExecuteNonQuery ();
if (GetReturnValue (returnValue) != 0)
return false;
return true;
}
return false;
}
}