Forms Auth-pwd recovery - я бы предпочел, чтобы пользователь сбрасывал его в Интернете, а не отправлял электронную почту - PullRequest
2 голосов
/ 05 февраля 2009

Вопрос 1 - Я хочу дать пользователю возможность сбросить свой пароль только без электронной почты и сгенерированного пароля. Пользователь проверяет себя по нашей внутренней базе данных с помощью специальной формы. Затем я хотел бы попросить их ввести имя пользователя и вопросы безопасности. Я не знаю, как сделать QA безопасности, поэтому я решил настроить контроль восстановления пароля. Я не хочу, чтобы он отправлял письмо с новым паролем. Скорее, если они правильно задают имя пользователя и вопрос, я хочу отправить их на страницу сброса пароля.

Можно ли задать им секретный вопрос и сравнить его, написав собственный код или используя предварительно собранный компонент. Кроме того, как я могу установить пароль, как только они сбросят его?

Вопрос 2- Я работаю над «Забыли имя пользователя». Во-первых, он сверяется с нашей базой данных. Основываясь на том, что они вводят, я смогу сопоставить и найти имя пользователя и идентификатор пользователя в базе данных аутентификации форм. Я хотел бы задать им секретный вопрос, но не знаю, как создать хеш из того, что они вводят, чтобы сравнить, что находится в базе данных aspnet для пользователя. Есть ли способ сделать это?

спасибо !!!

1 Ответ

6 голосов
/ 07 февраля 2009

Если вы используете проверку подлинности с помощью форм asp.net, она уже предоставляет механизмы для сброса пароля с помощью секретного вопроса. Это можно настроить в файле Web.config и использовать с элементом управления Password Recovery, частью элементов управления входом ASP.net.

Настройка в web.config в разделе провайдеров членства:

requireQuestionAndAnswer - Если задано значение true, представление Вопрос будет требоваться для получения или сброса пароля пользователя. Когда установлено значение false, представление Вопроса не отображается для пользователя.

С помощью элемента управления Password Recovery приведен пример кода:

  <asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
  <QuestionTemplate>
                <h2>Forgot Password</h2>
                Hello <asp:Literal ID="UserName" runat="server"></asp:Literal><br />
                Please answer your password question : <br />
                <asp:Literal ID="Question" runat="server"></asp:Literal>
                <asp:TextBox ID="Answer" runat="server"></asp:TextBox><br />
                 <asp:Button ID="SubmitButton" runat="server" Text="Send Answer By Mail" 
CommandName="Submit"/><br />
                  <asp:Literal ID="FailureText" runat="server"></asp:Literal>
    </QuestionTemplate>
    </asp:PasswordRecovery>

Для получения дополнительной информации об использовании элементов управления входом ASP.net перейдите на http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/default.aspx

Если вы не отправляете электронное письмо, вы можете отменить его, добавив OnSendingMail = "CancelEmail" в элемент управления восстановлением пароля, а затем добавьте код, как показано ниже, и просто отобразите новый пароль сброса на экране.

Sub CancelEmail(ByVal sender As Object, ByVal e As MailMessageEventArgs)
        e.Cancel = True
End Sub

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...