2009-02-05 4 views
2

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

Есть ли способ задать им вопрос безопасности и сравнить либо путем написания пользовательского кода, либо с использованием предварительно созданного компонента. Также, как я могу установить пароль после их сброса?

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

спасибо !!!

ответ

6

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

Установка в web.config под членство поставщиков раздела:

requiresQuestionAndAnswer - Если установлено значение истинно вид Вопрос будет необходим для пароля пользователя, которые будут получены или сброса. Если установлено значение «ложь», вопрос «Вопрос» не отображается пользователю.

Использование управления восстановлением пароля здесь пример кода:

<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 

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