Asp.net 密码恢复问题

Asp.net 密码恢复问题,asp.net,sql,security,Asp.net,Sql,Security,在构建应用程序时,我在使用PasswordRecovery实用程序时遇到了一些问题。我正在使用ASP.NET内置的配置工具。我的问题是,我无法使用提供的PasswordRecovery控件,因为我没有SMTP服务器设置,也不知道如何进行设置 我已尝试自定义控件,以便在成功恢复密码后在标签内显示用户密码。以下是我目前的代码: protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e)

在构建应用程序时,我在使用PasswordRecovery实用程序时遇到了一些问题。我正在使用ASP.NET内置的配置工具。我的问题是,我无法使用提供的PasswordRecovery控件,因为我没有SMTP服务器设置,也不知道如何进行设置

我已尝试自定义控件,以便在成功恢复密码后在标签内显示用户密码。以下是我目前的代码:

protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e)
    {
        e.Cancel = true;
        MembershipUser user;
        user = Membership.GetUser(PasswordRecovery1.UserName);
        label1.Text = user.GetPassword();


    }
以下是我收到的错误:

This Membership Provider has not been configured to support password retrieval.
现在我对这个错误做了一些研究,发现了一些奇怪的东西。ASP.NET工具未向我的web.config文件添加任何类型的成员资格提供程序。另外,当我尝试通过配置工具测试数据库时,我得到的结果如下:

Could not establish a connection to the database. 
If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider. 
在成功恢复密码后,有人能帮助我访问用户的密码吗?如果让SMTP运行起来很容易,我可能会尝试,但我认为在标签上显示用户密码会更容易


提前感谢。

解决重置密码时的错误是一个好办法。你为什么不寻求帮助呢

只需设置一个SMTP服务器-IIS中包含一个,您只需安装它即可


不要做密码恢复,这是个坏主意。此外,您不应该将密码存储在clear中。曾经永远不会

无论如何,密码恢复是个坏主意。你想提供一个重置机制而不是完全恢复,因为你不应该以一开始就可逆的方式存储密码。我同意。不管怎样好吧。。。但是我无法设置enablePasswordReset=true,因为它会在我当前的配置中引发错误。那么,是否需要在运行我的应用程序的每台计算机上安装此SMTP服务器?或者只是主服务器?@shenn,应用程序需要访问SMTP服务器。你把它放在哪里,或者是否在你的组织中使用现有的一个,这取决于你自己。在每个Web服务器上安装一个将有助于解决网络中断问题,但这也是一件额外的事情,需要加以保护。@shenn,请访问serverfault.com了解如何设置SMTP服务器