Инструмент восстановления пароля в С# не работает

Привет (я новичок в этом),

Я создал портал, на котором пользователь входит в систему, и внутри него он может просматривать другие созданные мной программы. Проблема в том, что восстановление пароля не работает — я не получаю сообщений об ошибках, я просто получаю сообщение «Нам не удалось получить доступ к вашей информации. Пожалуйста, попробуйте еще раз». У меня правильно настроена конфигурация 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>

Спасибо.


person Mike    schedule 02.11.2009    source источник
comment
Я также заметил, что то же самое происходит с инструментом «ChangePassword» - по какой-то причине текущий пароль не распознается, чтобы изменить пароль на что-то другое - так что, возможно, нужно что-то сделать в web.config?   -  person Mike    schedule 02.11.2009
comment
Вы также получите эту точную ошибку, если учетная запись ЗАБЛОКИРОВАНА. Когда учетная запись заблокирована, вы не можете сбросить пароль напрямую; пользователь должен попросить администратора разблокировать учетную запись, а затем пароль можно сбросить.   -  person philw    schedule 26.07.2011


Ответы (2)


Выглядит правильно для меня. Проверьте свою веб-конфигурацию, чтобы убедиться, что ваш провайдер членства имеет

  • включитьPasswordRetrieval="ложь"
  • включитьPasswordReset="истина"
  • требуетвопросиответ="ложь"

Также вам необходимо настроить определение почты в файле web.config, чтобы элемент управления мог отправить новый пароль по почте.

<mailSettings>
  <smtp from="[email protected]">
    <network host="your.smtp.server" port="25"/>
  </smtp>
</mailSettings>
person Oscar Kilhed    schedule 03.11.2009

Если вы получаете эту ошибку ("Нам не удалось получить доступ к вашей информации. Повторите попытку") для одного пользователя (но другие пользователи работают нормально), скорее всего, учетная запись просто заблокирована.

Чтобы разблокировать учетную запись, запустите хранимую процедуру: [aspnetdb].[dbo].[aspnet_Membership_UnlockUser]

Вам нужно ввести имя приложения и имя пользователя для разблокировки.

Если вы не знаете имя своего приложения, вы можете проверить его по таблице [aspnetdb].[dbo].[aspnet_Applications].

person steve cook    schedule 14.10.2013