2010-06-30 4 views
2

J'utilise le contrôle de récupération de mot de passe dans une application Web ASP.NET MVC 2. Lorsque je clique sur le bouton Envoyer sans nom d'utilisateur, cela indique que le nom d'utilisateur est manquant avec un astérisque. Si je mets un nom d'utilisateur le formulaire soumet mais rien ne se passe. Est-ce que j'ai râté quelque chose?L'outil de récupération de mot de passe MVC asp.net ne fonctionne pas

Web.config:

<system.net> 
    <mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
     <network host="mail.zzz.com" userName="[email protected]" 
     password="xxxxx" enableSsl="false" />    
    </smtp> 
    </mailSettings> 
</system.net> 

machine.config

<membership defaultProvider="MySQLMembershipProvider"> 
<providers> 
<add name="MySQLMembershipProvider" 
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
autogenerateschema="true" 
connectionStringName="LocalMySqlServer" 
enablePasswordRetrieval="false" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
applicationName="/" 
requiresUniqueEmail="true" 
passwordFormat="Hashed" 
maxInvalidPasswordAttempts="5" 
minRequiredPasswordLength="6" 
minRequiredNonalphanumericCharacters="1" 
passwordAttemptWindow="10" 
passwordStrengthRegularExpression="" /> 
</providers> 
</membership> 

Répondre

0

Selon votre configuration, vous utilisez des mots de passe hachés et les avez récupération du mot désactivé. Cela signifie que vous ne pouvez pas récupérer les mots de passe (parce qu'ils sont hachés). Vous pouvez seulement les réinitialiser.

Ceci est une installation sécurisée, donc ne le changez pas. Mais sachez que vous ne pouvez pas "récupérer" les mots de passe quand ils sont hachés.

Si vos besoins spécifient que les mots de passe doivent être récupérables, vous devrez alors modifier passwordFormat en Encrypted et définir enablePasswordRetrieval = "true". Mais sachez que tous les mots de passe hachés et les réponses de mot de passe dans votre base de données devront être saisis à nouveau par l'utilisateur car les valeurs actuelles seront «corrompues» en ce qui concerne le fournisseur. Pour appliquer cette modification, vous pouvez remplacer la méthode Authenticate de votre page de connexion et vérifier la date LastPasswordChange de l'utilisateur, puis la rediriger vers une page pour reconfigurer son mot de passe et répondre afin qu'il puisse se connecter correctement. Une dernière chose à mentionner est que les mots de passe cryptés sont récupérables car ils peuvent être décryptés. Cela signifie qu'ils sont moins sécurisés. Alors restez avec des mots de passe hachés si vous le pouvez.

Questions connexes