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 для проверки.