我正在使用示例开发的网站上实施密码恢复页面。我设置了页面,因此它使用新密码向用户发送电子邮件,这很棒。密码是哈希的,所以我当然看不到数据库中的内容。
好吧,新密码不起作用。哈哈。在这个问题上工作超过两个小时,需要转移到项目的另一个方面。还有其他人有这个问题吗?
<%@ 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>
答案 0 :(得分:0)
可能是ApplicationName与用于创建用户的ApplicationName不同。看一下aspnet_Users和aspnet_Application表来检查。
答案 1 :(得分:0)
确保数据库中的格式是散列的(1),您可以在aspnet_Membership和“PasswrodFormat”中找到它。
另请尝试在您的会员资格设置中包含此属性,passwordFormat =“Hashed”。