ChangePassword Control не работает - PullRequest
       24

ChangePassword Control не работает

0 голосов
/ 01 сентября 2011

Я сейчас работаю с приложением в .net, используя c #, и я хочу использовать элемент управления сменой пароля.

Проблема в том, что ... Я всегда получаю сообщение об ошибке «Пароль неверный или новый пароль недействителен. Минимальная длина нового пароля: 1. Требуются не буквенно-цифровые символы: 0.»

Даже если я предоставил правильные параметры пароля и установил (minRequiredPasswordLength = "1" minRequiredNonalphanumericCharacters = "0") в поставщике Mebership в моем файле web.config.

<asp:ChangePassword ID="ChangePassword1" runat="server" BackColor="#EFF3FB" BorderColor="#B5C7DE"
    BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana"
    Font-Size="0.8em" ForeColor="#333333" 
    ChangePasswordButtonText="Change" 
    ChangePasswordTitleText="Password change"
    ConfirmNewPasswordLabelText="Retype new password:" 
    NewPasswordLabelText="New Password:">
</asp:ChangePassword>

Я реализую свой собственный MembershipProvider:

public class MyMembershipProvider : MembershipProvider 
{
    ...

    public override int MinRequiredNonAlphanumericCharacters
    {
        get
        {
            return 0;
        }
    }

    ...
}

Web.config:

<membership defaultProvider="MyMembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <add name="MyMembershipProvider"
      type="My.Security.BsAsMembershipProvider"
      enablePasswordRetrieval="true"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="false"
      applicationName="MyApp"
      requiresUniqueEmail="true"
      passwordFormat="Clear"
      passwordStrengthRegularExpression=""
      minRequiredNonalphanumericCharacters="0"
      description="My custom membership provider"
    />
  </providers>
</membership>

Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 02 сентября 2011

Я обнаружил проблему, я не реализовал метод ChangePassword MyMemberShipUser.

public class MyMembershipUser : MembershipUser
{
    public MyMembershipUser()
    {
    }

    public MyMembershipUser(string username)
        : base("MyMembershipProvider", username, null, "", "", "", true, true, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today, DateTime.Today)
    {
    }

    public override bool ChangePassword(string oldPassword, string newPassword)        
    {

        //Do something

    }
}
...