【问题标题】:Password Recovery tool in C# not workingC# 中的密码恢复工具不起作用
【发布时间】:2010-12-12 08:08:06
【问题描述】:

嗨(我对此很陌生),

我创建了一个用户登录的门户,在该门户中,他们可以查看我制作的其他程序。问题是密码恢复似乎不起作用 - 我没有收到任何错误消息,我只是收到消息“我们无法访问您的信息。请重试。” 我正确设置了 ASP.NET 配置,并使用不同的用户和权限对其进行了测试,但我只是想知道我是否需要在配置管理器或 web.config 中做一些事情,这样才能正常工作。

下面是密码恢复工具的代码:

<form id="form1" runat="server">
<div align="center">
    <asp:PasswordRecovery ID="PasswordRecovery1" runat="server" Height="147px" Width="442px" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em">
        <UserNameTemplate>
            <table border="0" cellpadding="1" cellspacing="0" style="border-collapse: collapse">
                <tr>
                    <td style="width: 445px">
                        <table border="0" cellpadding="0" style="width: 442px; height: 147px">
                            <tr>
                                <td align="center" colspan="2">
                                    <strong><span style="font-size: 0.9em">Password Recovery</span></strong></td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2">
                                    &nbsp;</td>
                            </tr>
                            <tr>
                                <td align="right">
                                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label></td>
                                <td style="width: 291px">
                                    <asp:TextBox ID="UserName" runat="server" Width="187px"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
                                        ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="PasswordRecovery1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td align="center" colspan="2" style="color: red">
                                    <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                                </td>
                            </tr>
                            <tr>
                                <td align="right" colspan="2" style="text-align: right">
                                    <asp:Button ID="SubmitButton" runat="server" CommandName="Submit" Text="Submit" ValidationGroup="PasswordRecovery1"
                                        Width="103px" />
                                    &nbsp; &nbsp;
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        </UserNameTemplate>
        <InstructionTextStyle Font-Italic="True" ForeColor="Black" />
        <SuccessTextStyle Font-Bold="True" ForeColor="#5D7B9D" />
        <TextBoxStyle Font-Size="0.8em" />
        <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
        <SubmitButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
            BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
    </asp:PasswordRecovery>
</div>
</form>

谢谢。

【问题讨论】:

  • 我还注意到,“ChangePassword”工具也发生了同样的事情——由于某种原因,当前密码无法识别以将密码更改为其他密码——所以也许需要做一些事情在 web.config 中完成?
  • 如果帐户被锁定,您也会收到该精确错误。一旦帐户被锁定,您将无法直接重置密码;用户必须要求管理员解锁帐户,然后才能重置密码。

标签: c# asp.net passwords recovery


【解决方案1】:

如果您为一个用户收到此错误(“我们无法访问您的信息。请重试”)(但其他用户工作正常),很可能只是帐户被锁定。

要解锁帐户,请运行存储过程:[aspnetdb].[dbo].[aspnet_Membership_UnlockUser]

你需要传入你的应用名称,以及解锁的用户名。

如果您不知道您的应用程序名称,您可以查看[aspnetdb].[dbo].[aspnet_Applications] 表。

【讨论】:

    【解决方案2】:

    在我看来是正确的。 检查您的 webconfig 以确保您的会员提供者有

    • enablePasswordRetrieval="false"
    • enablePasswordReset="true"
    • 需要QuestionAndAnswer="false"

    您还需要在 web.config 中设置邮件定义,以便控件能够通过邮件发送新密码。

    <mailSettings>
      <smtp from="from@from.com">
        <network host="your.smtp.server" port="25"/>
      </smtp>
    </mailSettings>
    

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 2012-01-18
      相关资源
      最近更新 更多