2009-02-05 3 views
2

Question 1 - Je souhaite donner à l'utilisateur la possibilité de réinitialiser son mot de passe uniquement sans e-mail et mot de passe généré. L'utilisateur se vérifie contre notre base de données interne par un formulaire personnalisé écrit. Ensuite, je voudrais les inviter pour le nom d'utilisateur et la sécurité q & a. Je ne sais pas comment faire le contrôle de la qualité de sécurité, j'ai donc décidé de personnaliser le contrôle de récupération de mot de passe. Je ne veux pas qu'il envoie un email avec un nouveau mot de passe. Au contraire, s'ils obtiennent le nom d'utilisateur et la question correctement, je veux les envoyer à une page de réinitialisation de mot de passe.Récupération Auth-pwd-Je préfère que l'utilisateur le réinitialise sur le Web et n'envoie pas d'e-mail

Est-il possible de leur demander la question de sécurité et de comparer soit en écrivant un code personnalisé ou en utilisant un composant prédéfini. Aussi, comment puis-je définir le mot de passe une fois qu'ils l'ont réinitialisé?

Question 2- Je travaille sur un 'Identifiant oublié'. Il vérifiera d'abord contre notre base de données. En fonction de ce qu'ils saisissent, je serai en mesure de faire correspondre et de trouver le nom d'utilisateur et l'ID utilisateur dans la base de données d'authentification par formulaires. Je voudrais leur poser la question de sécurité, mais je ne sais pas comment créer le hachage à partir de ce qu'ils entrent pour comparer ce qui est dans la base de données aspnet pour l'utilisateur. Y a-t-il un moyen de faire cela?

merci !!!

Répondre

6

Si vous utilisez l'authentification de formulaires asp.net, elle fournit déjà les mécanismes permettant à un utilisateur de réinitialiser un mot de passe en utilisant une question de sécurité. Cela peut être configuré dans Web.config et utilisé avec un contrôle Password Recovery, une partie des contrôles de connexion ASP.net.

Mise en application de l'article web.config votre fournisseurs d'adhésion:

RequiresQuestionAndAnswer - Lorsque la valeur true la vue Question sera nécessaire pour à récupérer ou réinitialiser le mot de passe de l'utilisateur. Lorsqu'il est défini sur false, la vue Question n'est pas affichée pour l'utilisateur.

Utilisation de la Password Recovery est un exemple de code ici:

<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> 

Pour plus d'informations sur l'utilisation des contrôles ASP.net Connexion vont http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/default.aspx

En ce qui ne pas envoyer l'e-mail, vous pouvez annuler l'email en ajoutant OnSendingMail = "CancelEmail" dans le contrôle de récupération de mot de passe, puis ajoutez le code derrière comme ci-dessous, puis affichez simplement le nouveau mot de passe de réinitialisation sur l'écran.

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

Espérons que ça aide!

Questions connexes