ASP.NET ResetPassword генерирует исключение MembershipPasswordException, если ответ безопасности правильный - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь реализовать страницу сброса пароля вопроса и ответа, но эта строка:

string tempPassword = 
    Membership.Provider.ResetPassword(username, TextBoxSecurityAnswer.Text);

создает исключение MembershipPasswordException, даже если передаваемый ответ безопасности является правильным для имени пользователя. Базовым исключением является System.Exception, и в нем просто указано COMPlusExceptionCode со значением -532459699.

Я использую MySql и их .NET Connector v6.2.5 (это последнее, что я мог использовать, так как мой проект - .NET v3.5). Мои настройки web.config для провайдера членства выглядят так:

    <membership defaultProvider="MySQLMembershipProvider" hashAlgorithmType="SHA1">
        <providers>
            <clear/>
            <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
                connectionStringName="Membership" 
                applicationName="/" 
                passwordFormat="hashed" 
                minRequiredPasswordLength="4" 
                minRequiredNonalphanumericCharacters="0"
                requiresQuestionAndAnswer="true" />
        </providers>
    </membership>

Кто-нибудь знает, что происходит?

1 Ответ

1 голос
/ 30 января 2012

Хорошо, я понял это.И вау, чувствую ли я себя глупым?Но, может быть, кто-то еще сделает ту же глупость.

Я изменил данные для защитного ответа непосредственно в базе данных для рассматриваемой учетной записи, и когда я это сделал, защитный ответ больше не хэшировался в базе данных.Я предполагаю, что провайдер членства пытался взять то, что было в базе данных, предположить, что оно было хешировано, и что бы он ни придумал, не соответствовало предоставленному ответу, поэтому он выдал исключение.Имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...