Asp .Net Password Recovery новый пароль не работает

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

Ну, новый пароль не работает. Ха-ха. Работал над этой проблемой более двух часов и должен перейти к другому аспекту проекта. У кого-нибудь еще была эта проблема?

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RecoverPassword.aspx.cs" Inherits="RecoverPassword" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
    <h2>Recover Your Password</h2>
    <p>
        <asp:PasswordRecovery ID="RecoverPwd" runat="server" 
            onsendingmail="RecoverPwd_SendingMail">
            <MailDefinition BodyFileName="~/EmailTemplates/PasswordRecovery.txt" 
                Subject="Your password has been reset...">
            </MailDefinition>
        </asp:PasswordRecovery>
    </p>
</asp:Content>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class RecoverPassword : System.Web.UI.Page
{
    protected void RecoverPwd_SendingMail(object sender, MailMessageEventArgs e)
    {
        e.Message.CC.Add("dwayne.jarman@fda.hhs.gov");
    }
}

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider" 
         type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXX" 
         connectionStringName="DefaultConnection" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="true" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         applicationName="/"/>
  </providers>
</membership>

2 ответа

Решение

Убедитесь, что формат в базе данных хэширован (1), вы можете найти его в aspnet_Membership и "PasswrodFormat".

Также попробуйте включить этот атрибут в настройках членства, passwordFormat="Hashed".

Возможно, что ApplicationName отличается от того, которое использовалось для создания пользователей. Загляните в таблицу aspnet_Users и aspnet_Application для проверки.

Другие вопросы по тегам