2013-06-24 45 views
0

我正在使用示例开发的网站上实现密码恢复页面。我设置了页面,以便用新密码向用户发送电子邮件,这非常棒。密码被散列,所以我无法看到数据库中的内容。Asp .Net密码恢复新密码不起作用

那么,新的密码不起作用。哈哈。在这个问题上工作了两个多小时,需要转移到项目的另一个方面。其他人遇到过这个问题吗?

<%@ 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("[email protected]"); 
    } 
} 

<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

确保在数据库中的格式被散列(1),你可以在aspnet_Membership和“PasswrodFormat”找到。

另请尝试在您的会员设置中包含此属性,passwordFormat =“Hashed”。

+0

太棒了。这在数据库的PasswordFormat中是正确的,散列值是1的int值。我的web.config中没有passwordFormat =“Hashed”。我只是做了改变,它的工作。谢谢。 – user2511441

0

它可能是ApplicationName与用于创建用户的ApplicationName不同。看看在aspnet_Users和aspnet_Application表中检查。

+0

应用程序名称是“/”,但应用程序ID在用户和应用程序表中是相同的。我希望这是修复。伟大的呼唤,但不要以为是。 – user2511441